├── README.md ├── anotacoes └── anotacoes.md ├── boolean-e-condicionais ├── index.html ├── readme.md └── script.js ├── dom ├── dom.md ├── index.html └── script.js ├── exercicios ├── ex01.js ├── ex02.js ├── ex03.js ├── ex04.js ├── ex05.js ├── ex06.js ├── ex07.js ├── ex08.js ├── ex09.js ├── ex10.js └── ex11.js ├── funcoes ├── funcoes.md ├── index.html └── script.js ├── img ├── javascript.jpg └── js.jpg ├── numeros-e-operadores ├── index.html ├── numero-e-operadores.md └── script.js ├── objetos ├── index.html ├── objetos.md └── script.js ├── scroll-suave ├── index.html └── script.js ├── tipos de dados ├── index.html ├── script.js └── tipos-de-dados.md └── variaveis ├── index.html ├── script.js └── variaveis.md /README.md: -------------------------------------------------------------------------------- 1 | # 📒・ JavaScript: Anotações & Exercícios pessoais. 2 | 3 | JavaScript
4 |
5 | 6 | # 🎇 JavaScript: Guia Pessoal & Roadmap 7 | 8 | > Meu guia pessoal de estudos para JavaScript, feito para utilizar para consultas e me auxiliar e guiar durante todo meu aprendizado sobre essa linguagem de programação. 9 | 10 | # ◾ JavaScript - Parte 1° 11 | 12 | - [Váriaveis](https://github.com/arthurspk/javascript/blob/main/variaveis/variaveis.md) 13 | - [Classes](#) 14 | - [Funções](https://github.com/arthurspk/javascript/blob/main/funcoes/funcoes.md) 15 | - [Objetos ](https://github.com/arthurspk/javascript/blob/main/objetos/objetos.md) 16 | - [Classes](#) 17 | - [Operadores](#) 18 | - [Tipos de Dados](https://github.com/arthurspk/javascript/blob/main/tipos%20de%20dados/tipos-de-dados.md) 19 | - [Arrays e loops](#) 20 | - [Arrow functions](#) 21 | - [Funções regulares](#) 22 | - [Número e Operadores](https://github.com/arthurspk/javascript/blob/main/numeros-e-operadores/numero-e-operadores.md) 23 | - [Boolean e Condicionais](https://github.com/arthurspk/javascript/tree/main/boolean-e-condicionais) 24 | - [Atribuições e Ternário](#) 25 | - [Estruturas de Repetição](#) 26 | - [Estrutururas condicionais](#) 27 | 28 | # ◾ JavaScript - Parte 2° 29 | 30 | - [Destructuring](#) 31 | - [Rest e Spread](#) 32 | - [Factory Function](#) 33 | - [Loops e Iterable](#) 34 | - [Function Expression](#) 35 | - [Closures e Debugging](#) 36 | 37 | # ◾ JavaScript Assícrono 38 | 39 | - [JSON](#) 40 | - [Fetch](#) 41 | - [Promisses](#) 42 | - [API e HTTP](#) 43 | - [Async Await](#) 44 | - [History API](#) 45 | 46 | # ◾ Objetos 47 | 48 | - [Array](#) 49 | - [String](#) 50 | - [Object](#) 51 | - [Function](#) 52 | - [Prototype](#) 53 | - [Number e Math](#) 54 | - [Array e Iteração](#) 55 | - [Constructor Fuction](#) 56 | - [Native, Host e User](#) 57 | 58 | # ◾ Dom 59 | 60 | - [Eventos](#) 61 | - [Navegação por Tabs](#) 62 | - [Classes e Atributos](#) 63 | - [Seleção de Elementos](https://github.com/arthurspk/javascript/blob/main/dom/dom.md) 64 | - [Dimensões e Distâncias](#) 65 | - [forEach e Arrow Function](#) 66 | - [Traversing e Manipulação](#) 67 | 68 | # ◾ Efeitos no Dom 69 | 70 | - [Forms](#) 71 | - [Dataset](#) 72 | - [Modules](#) 73 | - [setTimeout](#) 74 | - [setInterval](#) 75 | - [Date Object](#) 76 | - [Event Bubble](#) 77 | 78 | # ◾ Classes 79 | 80 | - [Classes](#) 81 | - [Extends](#) 82 | - [Get e Set](#) 83 | 84 | # ◾ Repositórios sobre JavaScript 85 | 86 | - [Facebook - React](https://github.com/facebook/react) 87 | - [Awesome JavaScript Projects](https://github.com/Vishal-raj-1/Awesome-JavaScript-Projects) 88 | - [Clean Code JavaScript PT-BR](https://github.com/felipe-augusto/clean-code-javascript) 89 | - [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript) 90 | - [JavaScript Algorithms and Data Structures](https://github.com/trekhleb/javascript-algorithms) 91 | - [33 Conceitos que todo desenvolvedor JS deve conhecer](https://github.com/tiagoboeing/33-js-concepts) 92 | 93 | # ◾ Bibliotecas e Frameworks 94 | 95 | - [Vivus](https://maxwellito.github.io/vivus/) 96 | - [Oh Snap!](https://justindomingue.github.io/ohSnap/) 97 | - [SpaceBase](https://spacebase.space150.com/) 98 | - [Picturefill](https://scottjehl.github.io/picturefill/) 99 | - [Redux](https://redux.js.org/) 100 | - [PurifyCSS](https://github.com/purifycss/purifycss) 101 | - [Lodash](https://lodash.com/) 102 | - [EaselJS](https://www.createjs.com/easeljs) 103 | - [Drop.js](https://github.hubspot.com/drop/docs/welcome/) 104 | - [Propeller](http://propeller.in/index.html) 105 | - [Core UI](https://coreui.io/) 106 | - [MJML](https://mjml.io/) 107 | - [BaguetteBox](https://feimosi.github.io/baguetteBox.js/) 108 | - [React Trend](https://unsplash.github.io/react-trend/) 109 | - [Nachos UI](https://avocode.com/nachos-ui) 110 | - [Yargs](https://yargs.js.org/) 111 | - [Extension Boilerplate](https://www.emailthis.me/open-source/extension-boilerplate) 112 | - [FitVids](http://fitvidsjs.com/) 113 | - [WebGradients](https://webgradients.com/) 114 | - [BigPicture](https://henrygd.me/bigpicture/) 115 | - [Rellax](https://dixonandmoe.com/rellax/) 116 | - [ScrollDir](https://github.com/dollarshaveclub/scrolldir) 117 | - [Reactive Listener](https://zurb.com/playground/reactive-animation-listener) 118 | - [Muuri](https://muuri.dev/) 119 | - [Eagle.js](https://zulko.github.io/eaglejs-demo/#/) 120 | - [Notyf](https://carlosroso.com/notyf/) 121 | - [Multi.js](https://fabianlindfors.se/multijs/) 122 | - [MoveTo](https://hsnaydd.github.io/moveTo/demo/) 123 | - [Anchorme](https://alexcorvi.github.io/anchorme.js/) 124 | - [Tent CSS](https://css.sitetent.com/) 125 | - [Angular.js](https://angularjs.org/) 126 | - [Vue.js](https://vuejs.org/) 127 | - [React.js](https://reactjs.org/) 128 | - [Aurelia](https://aurelia.io/) 129 | - [Ember.js](https://emberjs.com/) 130 | - [Express.js](https://expressjs.com/pt-br/) 131 | - [Moment.js](https://momentjs.com/) 132 | - [Glimmer.js](https://glimmerjs.com/) 133 | - [Underscore.js](http://underscorejs.org/) 134 | - [Animate On Scroll](https://michalsnik.github.io/aos/) 135 | - [Bideo.js](https://rishabhp.github.io/bideo.js/) 136 | - [Cleave.js](https://nosir.github.io/cleave.js/) 137 | - [Choreographer.js](https://christinecha.github.io/choreographer-js/) 138 | - [Granim.js](https://sarcadass.github.io/granim.js/) 139 | - [fullPage.js](https://github.com/alvarotrigo/fullPage.js/) 140 | - [Leaflet](https://leafletjs.com/) 141 | - [Multiple.js](https://multiple.js.org/) 142 | - [Masonry](https://masonry.desandro.com/) 143 | - [Omniscient](https://omniscientjs.github.io/) 144 | - [Parsley](http://parsleyjs.org/) 145 | - [Popper.js](https://popper.js.org/) 146 | - [Three.js](https://threejs.org/) 147 | - [Screenfull.js](https://github.com/sindresorhus/screenfull) 148 | - [Polymer](https://polymer-library.polymer-project.org/3.0/docs/devguide/feature-overview) 149 | - [Voca](https://vocajs.com/) 150 | - [Particles.js](https://vincentgarreau.com/particles.js/) 151 | - [Lax.js](https://github.com/alexfoxy/lax.js) 152 | - [WOW](https://wowjs.uk/) 153 | - [Animate](https://animate.style/) 154 | - [ScrollMagic](https://scrollmagic.io/) 155 | 156 | # ◾ Bibliotecas de Fontes 157 | 158 | - [Typerface.js](https://css-tricks.com/typefacejs-a-sifr-alternative/) 159 | 160 | # ◾ Bibliotecas de Animações 161 | 162 | - [Anime.js](https://animejs.com/) 163 | - [JSTweener](https://github.com/valera-rozuvan/JSTweener) 164 | 165 | # ◾ Bibliotecas de Formulários 166 | 167 | - [wForms](https://github.com/veerwest/wforms) 168 | - [Validanguage](https://github.com/gcao/validanguage) 169 | 170 | # ◾ Bibliotecas de Base de Dados 171 | 172 | - [TaffyDB](https://taffydb.com/) 173 | - [ActiveRecorde.js](https://github.com/matthewwolfe/active-record-js) 174 | 175 | # ◾ Biblioteca de Efeitos de Imagem 176 | 177 | - [Pieces](https://github.com/lmgonzalves/pieces) 178 | - [CamanJS](http://camanjs.com/) 179 | - [ImageFX](https://github.com/s-silva/imagefx) 180 | - [Oridomi](https://oridomi.com/) 181 | - [Glfx.js](https://evanw.github.io/glfx.js/) 182 | - [StackBlur](https://github.com/flozz/StackBlur) 183 | - [VintageJS](https://vintagejs.com/) 184 | - [Sticker.js](http://stickerjs.cmiscm.com/) 185 | - [Magnifier.js](https://mark-rolich.github.io/Magnifier.js/) 186 | - [Intense Images](https://tholman.com/intense-images/) 187 | - [WebGL Image Filter](https://github.com/phoboslab/WebGLImageFilter) 188 | - [Add a little magic!](https://gist.github.com/CodeMyUI/bea97056758e585719cb) 189 | - [Blur on Scroll + Simple Parallax](https://gist.github.com/benjaminsehl/21992c8cdb534d9ff009) 190 | 191 | # ◾ Bibliotecas de Manipulação do DOM 192 | 193 | - [jQuery](https://jquery.com/) 194 | - [Umbrella JS](https://umbrellajs.com/) 195 | 196 | # ◾ Bibliotecas de Tratamento de dados 197 | 198 | - [D3.js](https://d3js.org/) 199 | 200 | # ◾ Bibliotecas de Interface do usuário e seus componentes 201 | 202 | - [React.js](https://pt-br.reactjs.org/) 203 | - [Glimmer.js](https://glimmerjs.com/) 204 | 205 | # ◾ Bibliotecas de Visualização de dados em mapas e gráficos 206 | 207 | - [Chart.js](https://www.chartjs.org/) 208 | - [Apexchart.js](https://apexcharts.com/) 209 | - [Algolia Lugares](https://community.algolia.com/places/) 210 | 211 | # ◾ Bibliotecas de Desenvolvimento de Games 212 | 213 | - [JawsJS](https://github.com/ippa/jaws) 214 | - [Crafty](https://craftyjs.com/) 215 | - [DarlingJS](https://darlingjs.github.io/) 216 | - [Enchant.js](https://github.com/wise9/enchant.js/) 217 | - [Backbone Game Engine](https://martindrapeau.github.io/backbone-game-engine/) 218 | 219 | # ◾ Bibliotecas de Toast Notification 220 | 221 | - [Noty](https://ned.im/noty/#/) 222 | - [Toastr](https://codeseven.github.io/toastr/) 223 | - [AlertifyJS](https://alertifyjs.com/) 224 | - [BootboxJS](http://bootboxjs.com/) 225 | - [SweetAlert](https://sweetalert.js.org/docs/) 226 | - [SweetAlert2](https://sweetalert2.github.io/) 227 | 228 | # ◾ Bibliotecas de Carousel 229 | 230 | - [Slick](https://kenwheeler.github.io/slick/) 231 | - [UIKit](https://getuikit.com/docs/slider) 232 | - [Splide](https://splidejs.com/) 233 | - [Swiper](https://swiperjs.com/) 234 | - [Glide.js](https://glidejs.com/) 235 | - [Owl Carousel 2](https://owlcarousel2.github.io/OwlCarousel2/) 236 | - [Embla Carousel](https://www.embla-carousel.com/) 237 | 238 | # ◾ Frameworks 239 | 240 | - [Angular](https://angularjs.org/) 241 | - [Bootstrap](https://getbootstrap.com/) 242 | - [Aurelia](http://aurelia.io/) 243 | - [Vue.js](https://vuejs.org/) 244 | - [Ember.js](https://emberjs.com/) 245 | - [Node.js](https://nodejs.org/en/) 246 | - [Backbone.js](https://backbonejs.org/) 247 | - [Next.js](https://nextjs.org/) 248 | - [Mocha](https://mochajs.org/) 249 | - [Ionic](https://ionicframework.com/) 250 | - [Webix](https://webix.com/) 251 | - [Gatsby](https://www.gatsbyjs.com/) 252 | - [Meteor.js](https://www.meteor.com/) 253 | - [MithrilJS](https://mithril.js.org/) 254 | - [ExpressJS](https://expressjs.com/) 255 | 256 | -------------------------------------------------------------------------------- /anotacoes/anotacoes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/anotacoes/anotacoes.md -------------------------------------------------------------------------------- /boolean-e-condicionais/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Boolean e condicionais 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /boolean-e-condicionais/readme.md: -------------------------------------------------------------------------------- 1 | ## Boolean e Condicionais 2 | 3 | ```js 4 | | Existem dois valores booleanos false ou true. 5 | 6 | var possuiGraduacao = true; 7 | var possuiDoutorado = false; 8 | ``` 9 | 10 | ## Condicionais if & else 11 | 12 | ```js 13 | | Verificar se uma expressão é verdadeira com if, caso contrário o else será ativado. 14 | 15 | var possuiGraduacao = true; 16 | 17 | if(possuiGraduacao) { 18 | console.log('Possui graduação'); 19 | } else { 20 | console.log('Não possui graduação'); 21 | } 22 | 23 | // retorna Possui Graduação e não executa o else 24 | // verifica se o valor possuiGraduacao é true caso o valor não seja irá retornar no 25 | // else 'Não possui graduação' 26 | ``` 27 | 28 | ## Condicionais else if 29 | 30 | ```js 31 | | Se o if não for verdadeiro, ele testará o else if 32 | 33 | var possuiGraduacao = true; 34 | var possuiDoutorado = false; 35 | 36 | if(possuiDoutorado) { 37 | console.log('Possui graduação e doutorado'); 38 | } else if(possuiGraduacao) { 39 | console.log('Possui graduação, mas não possui doutorado'); 40 | } else { 41 | console.log('Não possui graduação'); 42 | } 43 | // retorna Possui Graduação, mas não possui doutorado 44 | // verifica se (if) o primeiro valor é true caso não ele utilizara se não ele coloca a condicional se não (else if) para verificar se a próxima variavel tem o valor true, caso não tenha ele utilizará o else para indicar que o valor é false e imprimir no console.log a seguinte frase 'Não possui graduação' 45 | ``` 46 | 47 | ## Switch 48 | 49 | ```js 50 | | Com o switch você pode verificar se uma variável é igual à diferentes valores utilizando o case. Caso ela seja igual, você pode fazer alguma coisa e utilizar a palavra chave break; para cancelar a continuação. O valor de default ocorrerá caso nenhuma das anteriores seja verdadeira. 51 | 52 | // Definições de inglês para PT-BR 53 | | switch = trocar 54 | | break = quebrar // Quebrar o código ou parar 55 | | case = caso 56 | 57 | var corFavorita = 'Azul'; 58 | 59 | switch (corFavorita) { 60 | case 'Azul': 61 | console.log('Olhe para o céu.'); 62 | break; 63 | case 'Vermelho': 64 | console.log('Olhe para rosas.'); 65 | break; 66 | case 'Amarelo': 67 | console.log('Olhe para o sol.'); 68 | break; 69 | default: 70 | console.log('Feche os olhos'); 71 | } 72 | 73 | // Definimos a váriavel como azul, nesse caso o console irá indicar a seguinte mensagem caso a cor escolhida for azul, olhe para o céu, caso a cor escolhida não for azul e o usuário escolher a cor Vermelho o console irá indicar 'Olhe para as rosas' e assim por diante até que algum ponto uma cor não foi predefinida. 74 | ``` 75 | 76 | ## Truthy e False (Verdadadeiro ou Falso) / (Verdade / Falso) 77 | 78 | ```js 79 | | Existem valores que retornam true e outros que retornam false quando verificados em uma expressão booleana. 80 | 81 | // Falsy 82 | if(false) 83 | if(0) // ou -0 84 | if(NaN) 85 | if(null) 86 | if(undefined) 87 | if('') // ou "" ou `` 88 | 89 | // Truthy 90 | if(true) 91 | if(1) 92 | if(' ') 93 | if('andre') 94 | if(-5) 95 | if({}) 96 | ``` 97 | 98 | ## Operador Lógico de negação 99 | 100 | ```js 101 | | O operador !, nega uma operação booleana. Ou seja, !true é igual a false 102 | 103 | // Truthy 104 | if(!true) // false 105 | if(!1) // false 106 | if(!'') // true 107 | if(!undefined) // true 108 | if(!!' ') // true 109 | if(!!'') // false 110 | 111 | | Dica, você pode utilizar o !! para verificar se uma expressão é Truthy ou Falsy 112 | ``` 113 | 114 | ## Operadores de comparação 115 | 116 | ```js 117 | | Vão sempre retornar um valor booleano 118 | 119 | 10 > 5; // true 120 | 5 > 10; // false 121 | 20 < 10; // false 122 | 10 <= 10 // true 123 | 10 >= 11 // false 124 | 125 | | O == faz uma comparação não tão estrita e o === faz uma comparação estrita, ou seja, o tipo de dado deve ser o mesmo quando usamos === 126 | 127 | 10 == '10'; // true 128 | 10 == 10; // true 129 | 10 === '10'; // false 130 | 10 === 10 // true 131 | 10 != 15 // true 132 | 10 != '10' // false 133 | 10 !== '10' // true 134 | ``` 135 | 136 | ## Operadores Lógicos && 137 | 138 | ```js 139 | | && Compara se uma expressão e a outra é verdadeira 140 | // Caso haja algum valor definido como falso a expressão sempre será considerada falsa. 141 | 142 | true && true; // true 143 | true && false; // false 144 | false && true; // false 145 | 'Gato' && 'Cão'; // 'Cão' 146 | (5 - 5) && (5 + 5); // 0 147 | 'Gato' && false; // false 148 | (5 >= 5) && (3 < 6); // true 149 | 150 | | Se ambos os valores forem true ele irá retornar o último valor verificado Se algum valor for false ele irá retornar o mesmo e não irá continuar a verificar os próximos 151 | ``` 152 | 153 | ## Operadores Lógicos || 154 | 155 | ```js 156 | || Compara se uma expressão ou outra é verdadeira 157 | 158 | true || true; // true 159 | true || false; // true 160 | false || true; // true 161 | 'Gato' || 'Cão'; // 'Gato' 162 | (5 - 5) || (5 + 5); // 10 163 | 'Gato' || false; // Gato 164 | (5 >= 5) || (3 < 6); // true 165 | 166 | | Retorna o primeiro valor true que encontrar 167 | 168 | 169 | -------------------------------------------------------------------------------- /boolean-e-condicionais/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/boolean-e-condicionais/script.js -------------------------------------------------------------------------------- /dom/dom.md: -------------------------------------------------------------------------------- 1 | ## Anotações do DOM 2 | 3 | > Esse README é feito com o intuito de registrar minha anotações com a manipulação do DOM 4 | 5 | ## Selecionando elementos 6 | 7 | ```js 8 | | Selecionando o elemento com document.getElementById() 9 | | Retorna a referência do elemento através do seu ID. 10 | 11 | | Sintaxe: 12 | 13 | var elemento = document.getElementById(id); 14 | 15 | | elemento é uma referência a um objeto Element, ou null se um elemento com o ID especificado não estiver contido neste documento. 16 | 17 | | id é uma string que diferência maiúsculas e minúsculas representando o ID único do elemento sendo procurado. 18 | ``` 19 | -------------------------------------------------------------------------------- /dom/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/dom/index.html -------------------------------------------------------------------------------- /dom/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/dom/script.js -------------------------------------------------------------------------------- /exercicios/ex01.js: -------------------------------------------------------------------------------- 1 | var nome = "Arthur"; 2 | var idade = 20; 3 | 4 | var comidaFavorita; 5 | comidaFavorita = "pizza"; 6 | 7 | var timePrimario, 8 | timeSecundario, 9 | timeTerciario, 10 | timeQuartenario, 11 | timeQuintenario; -------------------------------------------------------------------------------- /exercicios/ex02.js: -------------------------------------------------------------------------------- 1 | // Exercicio de váriaveis 2 | 3 | // Declare uma váriável contendo uma string 4 | var cor = 'Branca'; 5 | 6 | //Declare uma variável contendo um número dentro de uma string 7 | var ano = '2002'; 8 | 9 | // Declare uma váriável com a sua idade 10 | var idade = 20; 11 | 12 | // Declare duas variáveis, uma com seu nome 13 | // e outra com seu sobrenome e some as mesmas 14 | var nome = 'Arthur'; 15 | var sobrenome = 'Coutinho'; 16 | var nomeCompleto = `${nome} ${sobrenome}` 17 | 18 | // Coloque a seguinte frase em uma variável: It's time 19 | var frase = `It's time` 20 | 21 | // Verifique o tipo da variável que contém o seu nome 22 | console.log(typeof nome) 23 | 24 | -------------------------------------------------------------------------------- /exercicios/ex03.js: -------------------------------------------------------------------------------- 1 | // Exercicio de Número e Operadores 2 | 3 | // Qual o resultado da seguinte expressão 4 | 5 | var total = 10 + 5 * 2 / 2 + 20; 6 | var resultado = 35; 7 | 8 | // Cria duas expressões que retornem NaN 9 | 10 | var expressao1 = '2kg'; 11 | var expressao2 = 3; 12 | var resultado1 = (expressao1 / expressao2); 13 | console.log(resultado1) 14 | 15 | var numero1 = 'Dez' 16 | var numero2 = 2; 17 | var resultadoDaSoma = (numero1 * numero2); 18 | console.log(resultadoDaSoma) 19 | 20 | // Somar a string '200' com o número 50 e retornar 250 21 | 22 | var valor1 = '200'; 23 | var valor2 = 50; 24 | var resultadoDosValores = (+valor1 + valor2) 25 | console.log(resultadoDosValores) 26 | 27 | // Incremente o número 5 e retorne o seu valor incrementado 28 | 29 | var incremento = 5; 30 | var incrementado = (++incremento) 31 | console.log(incrementado) 32 | 33 | // Como dividir o peso por 2? 34 | 35 | var numero = +'80' / 2; 36 | var unidade = 'kg'; 37 | var peso = numero + unidade; // 80kg 38 | console.log(pesoPorDois) 39 | -------------------------------------------------------------------------------- /exercicios/ex04.js: -------------------------------------------------------------------------------- 1 | // Exercício de Boolean e Condicionais 2 | 3 | // Verifique se a sua idade é maior do que a de algum parente 4 | // Dependendo do resultado coloque no console 'É maior', 'É igual' ou 'É menor' 5 | 6 | var minhaIdade = 20; 7 | var idadeParente = 43; 8 | 9 | if (minhaIdade > idadeParente) { 10 | console.log('É maior') 11 | } else if (minhaIdade === idadeParente) { 12 | console.log('É igual') 13 | } else (minhaIdade < idadeParente) 14 | console.log('É menor') 15 | 16 | 17 | // Qual valor é retornado na seguinte expressão? 18 | // 3 - Pois ambas expressões são true e o primeiro resultado da expressão é igual a 3 19 | var expressao = (5 - 2) && (5 - ' ') && (5 - 2); 20 | console.log(expressao) 21 | 22 | 23 | // Verifique se as seguintes variáveis são Truthy ou Falsy 24 | var nome = 'Andre'; 25 | var idade = 28; 26 | var possuiDoutorado = false; 27 | var empregoFuturo; 28 | var dinheiroNaConta = 0; 29 | 30 | console.log(!!nome, !!idade, !!possuiDoutorado, !!empregoFuturo, !!dinheiroNaConta) 31 | 32 | // Compare o total de habitantes do Brasil com China (valor em milhões) 33 | var brasil = 207; 34 | var china = 1340; 35 | 36 | brasil > china; 37 | brasil < china; 38 | brasil <= china; 39 | brasil >= china; 40 | 41 | 42 | // O que irá aparecer no console? 43 | if(('Gato' === 'gato') && (5 > 2)) { 44 | console.log('Verdadeiro'); 45 | } else { 46 | console.log('Falso'); 47 | } 48 | 49 | Falso 50 | 51 | // O que irá aparecer no console? 52 | if(('Gato' === 'gato') || (5 > 2)) { 53 | console.log('Gato' && 'Cão'); 54 | } else { 55 | console.log('Falso'); 56 | } 57 | 58 | Undefined -------------------------------------------------------------------------------- /exercicios/ex05.js: -------------------------------------------------------------------------------- 1 | // Exercicio de funções 2 | 3 | // Crie uma função para verificar se um valor é Truthy 4 | 5 | function isTruthy(dado) { 6 | return !!dado; 7 | } 8 | 9 | // Crie uma função matemática que retorne o perímetro de um quadrado 10 | // lembrando: perímetro é a soma dos quatro lados do quadrado 11 | 12 | function perimetroQuadrado(lado){ 13 | return lado * 4; 14 | } 15 | 16 | 17 | // Crie uma função que retorne o seu nome completo 18 | // ela deve possuir os parâmetros: nome e sobrenome 19 | 20 | function nomeCompleto (nome, sobrenome) { 21 | return `${nome} + ${sobrenome}`; 22 | } 23 | 24 | // Crie uma função que verifica se um número é par 25 | 26 | function isEven(numero) { 27 | var modulo = numero % 2; 28 | if(modulo === 0) { 29 | return true; 30 | } else { 31 | return false; 32 | } 33 | } 34 | 35 | // Crie uma função que retorne o tipo de 36 | // dado do argumento passado nela (typeof) 37 | 38 | function tipoDeDado(dado) { 39 | return typeof dado; 40 | } 41 | 42 | // addEventListener é uma função nativa do JavaScript 43 | // o primeiro parâmetro é o evento que ocorre e o segundo o Callback 44 | // utilize essa função para mostrar no console o seu nome completo 45 | // quando o evento 'scroll' ocorrer. 46 | addEventListener('click', function(){ 47 | console.log('Arthur Coutinho') 48 | }); 49 | 50 | 51 | // Corrija o erro abaixo 52 | 53 | var totalPaises = 193; 54 | 55 | function precisoVisitar(paisesVisitados) { 56 | return `Ainda faltam ${totalPaises - paisesVisitados} países para visitar`; 57 | } 58 | function jaVisitei(paisesVisitados) { 59 | return `Já visitei ${paisesVisitados} do total de ${totalPaises} países`; 60 | } 61 | 62 | precisoVisitar(20); 63 | 64 | -------------------------------------------------------------------------------- /exercicios/ex06.js: -------------------------------------------------------------------------------- 1 | // Exercicios sobre objetos 2 | 3 | // Crie um objeto com os seus dados pessoais 4 | // Deve possui pelo menos duas propriedades nome e sobrenome 5 | 6 | var meuNome = { 7 | nome: 'Arthur', 8 | sobrenome: 'Coutinho', 9 | } 10 | 11 | meuNome.nome = 'Arthur', 12 | meuNome.sobrenome = 'Coutinho' 13 | 14 | // Resolução Origamid 15 | 16 | // var meuNome = { 17 | // nome: 'Arthur', 18 | // sobrenome: 'Coutinho', 19 | // } 20 | 21 | 22 | 23 | // Crie um método no objeto anterior, que mostre o seu nome completo 24 | 25 | var meuNome = { 26 | nome: 'Arthur', // Propriedade & Valor 27 | sobrenome: 'Coutinho', 28 | nomeCompleto: function() { 29 | const teste = () => `${this.nome} ${this.sobrenome}` 30 | return teste() 31 | } 32 | } 33 | 34 | // Resolução Origamid 35 | // meuNome.nome.Completo = function() { 36 | // return `${this.nome} ${this.sobrenome}` 37 | // } 38 | 39 | function oi (){ 40 | console.log ('oi') 41 | } 42 | 43 | const ola = () => console.log ('oi') 44 | 45 | meuNome.nome = 'Arthur' 46 | meuNome.sobrenome = 'Coutinho' 47 | const nomeCompleto = meuNome.nomeCompleto() 48 | console.log(nomeCompleto) 49 | 50 | // Modifique o valor da propriedade preco para 3000 51 | var carro = { 52 | preco: 1000, 53 | portas: 4, 54 | marca: 'Audi', 55 | } 56 | 57 | carro.preco = 3000; 58 | 59 | // Crie um objeto de um cachorro que represente um labrador, 60 | // preto com 10 anos, que late ao ver um homem 61 | 62 | var cachorro = { 63 | raca: 'labrador', 64 | color: 'preto', 65 | idade: 10, 66 | latir(){ 67 | console.log('Au au au') 68 | }, 69 | ver(coisa){ 70 | if (coisa === 'homem'){ 71 | this.latir() 72 | } else { 73 | console.log('Cachorro tá mec') 74 | } 75 | } 76 | } 77 | 78 | cachorro.ver('homem') 79 | 80 | // Ctrl + Alt + N - executar o code runner 81 | // Ctrl + Shift + p - Start on current file para executar o Quokka -------------------------------------------------------------------------------- /exercicios/ex07.js: -------------------------------------------------------------------------------- 1 | var dados = { 2 | nome: 'Arthur', 3 | sobrenome: 'Coutinho', 4 | idade: 20, 5 | cidade: 'Maceió' 6 | } 7 | 8 | dados.nomeCompleto = function() { 9 | return `${this.nome} ${this.sobrenome}`; 10 | } 11 | 12 | var cachorro = { 13 | raca: 'labrador', 14 | cor: 'preto', 15 | idade: '10', 16 | latir(pessoa) { 17 | if(pessoa === 'homem'){ 18 | return 'Latir'; 19 | } else { 20 | return 'Nada'; 21 | } 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /exercicios/ex08.js: -------------------------------------------------------------------------------- 1 | // nomeie 3 propriedades ou métodos de strings 2 | var nome = 'Arthur'; 3 | nome.toLocaleLowerCase 4 | nome.toLocaleUpperCase 5 | nome.repeat 6 | 7 | // nomeie 5 propriedades ou métodos de elementos do DOM 8 | 9 | // busque na web um objeto (método) capaz de interagir com o clipboard, 10 | // clipboard é a parte do seu computador que lida com o CTRL + C e CTRL + V 11 | -------------------------------------------------------------------------------- /exercicios/ex09.js: -------------------------------------------------------------------------------- 1 | // Crie uma array com os anos que o Brasil ganhou a copa 2 | // 1959, 1962, 1970, 1994, 2002 3 | 4 | var copa = ['1959', '1962', '1970', '1994', '2002'] 5 | 6 | // Interaja com a array utilizando um loop, para mostrar 7 | // no console a seguinte mensagem, `O brasil ganhou a copa de ${ano}` 8 | 9 | var copa = ['1959', '1962', '1970', '1994', '2002'] 10 | for (var i = 0; i < copa.length; i++){ 11 | console.log(`O Brasil ganhou a copa de ${copa[i]}`) 12 | } 13 | 14 | // Interaja com um loop nas frutas abaixo e pare ao chegar em Pera 15 | 16 | var frutas = ['Banana', 'Maçã', 'Pera', 'Uva', 'Melância'] 17 | for(var fruta = 0; fruta < frutas.length; fruta++) { 18 | console.log(frutas[fruta]); 19 | if(frutas[fruta] === 'Pera') { 20 | break; 21 | } 22 | } 23 | 24 | // Coloque a última fruta da array acima em uma variável, 25 | // sem remover a mesma da array. 26 | 27 | var frutas = ['Banana', 'Maçã', 'Pera', 'Uva', 'Melância'] 28 | var fruta = (frutas[4]) 29 | console.log(fruta) -------------------------------------------------------------------------------- /exercicios/ex10.js: -------------------------------------------------------------------------------- 1 | // Some 500 ao valor de scroll abaixo, 2 | // atribuindo o novo valor a scroll 3 | var scroll = 1000; 4 | scroll += 500; 5 | 6 | console.log(scroll) 7 | 8 | // Atribua true para a variável darCredito, 9 | // caso o cliente possua carro e casa. 10 | // E false caso o contrário. 11 | var possuiCarro = true; 12 | var possuiCasa = false; 13 | var darCredito = 'Você recebeu créditos'; 14 | 15 | 16 | if (possuiCarro && possuiCasa){ 17 | console.log(darCredito); 18 | } else { 19 | console.log('Você não recebeu créditos') 20 | } 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /exercicios/ex11.js: -------------------------------------------------------------------------------- 1 | // Por qual motivo o código abaixo retorna com erros? 2 | { 3 | var cor = 'preto'; 4 | const marca = 'Fiat'; 5 | let portas = 4; 6 | } 7 | console.log(var, marca, portas); 8 | 9 | 10 | 11 | // Como corrigir o erro abaixo? 12 | function somarDois(x) { 13 | const dois = 2; 14 | return x + dois; 15 | } 16 | function dividirDois(x) { 17 | return x + dois; 18 | } 19 | somarDois(4); 20 | dividirDois(6); 21 | 22 | // O que fazer para total retornar 500? 23 | let numero = 50; 24 | 25 | for(let numero = 50; numero < 500; numero++) { 26 | console.log(numero); 27 | } 28 | 29 | const total = 10 * numero; 30 | console.log(total); 31 | -------------------------------------------------------------------------------- /funcoes/funcoes.md: -------------------------------------------------------------------------------- 1 | ## Funções 2 | 3 | ```js 4 | | Bloco de código que pode ser executado e reutilizado. Valores podem ser passados por uma função e a mesma retorna outro valor. 5 | 6 | function areaQuadrado(lado) { 7 | return lado * lado; 8 | } 9 | 10 | areaQuadrado(4) // 16 11 | areaQuadrado(5) // 25 12 | areaQuadrado(2) // 4 13 | 14 | | Chamada de function declaration 15 | ``` 16 | 17 | ## Funções² 18 | 19 | ```js 20 | function pi() { 21 | return 3.14; 22 | } 23 | 24 | var total = 5 * pi(); // 15.7 25 | 26 | | Parênteses () executam uma função 27 | ``` 28 | 29 | ## Parâmetros e Argumentos 30 | 31 | ```js 32 | | Ao criar uma função, você pode definir parâmetros. 33 | | Ao executar uma função, você pode passar argumentos. 34 | 35 | 36 | // peso e altura são os parâmetros 37 | function imc(peso, altura) { 38 | const imc = peso / (altura ** 2); 39 | return imc; 40 | } 41 | 42 | imc(80, 1.80) // 80 e 1.80 são os argumentos 43 | imc(60, 1.70) // 60 e 1.70 são os argumentos 44 | 45 | | Separar por vírgula cada parâmetro. Você pode definir mais de um parâmetro ou nenhum também 46 | ``` 47 | 48 | ## Parênteses executa a função 49 | 50 | ```js 51 | function corFavorita(cor) { 52 | if(cor === 'azul') { 53 | return 'Você gosta do céu'; 54 | } else if(cor === 'verde') { 55 | return 'Você gosta de mato'; 56 | } else { 57 | return 'Você não gosta de nada'; 58 | } 59 | } 60 | corFavorita(); // retorna 'Você não gosta de nada' 61 | 62 | // Se apenas definirmos a função com o function e não executarmos a mesma, nada que estiver dentro dela irá acontecer 63 | ``` 64 | 65 | ## Argumentos podem ser funções 66 | 67 | ```js 68 | | Chamadas de Callback, geralmente são funções que ocorrem após algum evento. 69 | 70 | addEventListener('click', function() { 71 | console.log('Clicou'); 72 | }); 73 | // A função possui dois argumentos 74 | // Primeiro é a string 'click' 75 | // Segundo é uma função anônima 76 | 77 | | Funções anônimas são aquelas em que o nome da função não é definido, escritas como function() {} ou () => {} 78 | ``` 79 | ## Pode ou não retornar um valor 80 | 81 | ```js 82 | | Quando não definimos o return, ela irá retornar undefined. O código interno da função é executado normalmente, independente de existir valor de return ou não. 83 | 84 | function imc(peso, altura) { 85 | const imc = peso / (altura ** 2); 86 | console.log(imc); 87 | } 88 | 89 | imc(80, 1.80); // retorna o imc 90 | console.log(imc(80, 1.80)); // retorna o imc e undefined 91 | ``` 92 | 93 | ## Valores retornados 94 | 95 | ```js 96 | | Uma função pode retornar qualquer tipo de dado e até outras funções. 97 | 98 | function terceiraIdade(idade) { 99 | if(typeof idade !== 'number') { 100 | return 'Informe a sua idade!'; 101 | } else if(idade >= 60) { 102 | return true; 103 | } else { 104 | return false; 105 | } 106 | } 107 | 108 | | Cuidado, retornar diferentes tipos de dados na mesma função não é uma boa ideia. 109 | ``` 110 | 111 | ## Escopo 112 | 113 | ```js 114 | | Variáveis e funções definidas dentro de um bloco {}, não são visíveis fora dele. 115 | 116 | function precisoVisitar(paisesVisitados) { 117 | var totalPaises = 193; 118 | return `Ainda faltam ${totalPaises - paisesVisitados} paises para visitar` 119 | } 120 | console.log(totalPaises); // erro, totalPaises não definido 121 | ``` 122 | 123 | ## Escopo léxico 124 | 125 | ```js 126 | | Funções conseguem acessar variáveis que foram criadas no contexto pai 127 | 128 | var profissao = 'Designer'; 129 | 130 | function dados() { 131 | var nome = 'André'; 132 | var idade = 28; 133 | function outrosDados() { 134 | var endereco = 'Rio de Janeiro'; 135 | var idade = 29; 136 | return `${nome}, ${idade}, ${endereco}, ${profissao}`; 137 | } 138 | return outrosDados(); 139 | } 140 | 141 | dados(); // Retorna 'André, 29, Rio de Janeiro, Designer' 142 | outrosDados(); // retorna um erro 143 | ``` 144 | 145 | ## Hoisting 146 | ```js 147 | | Antes de executar uma função, o JS 'move' todas as funções declaradas para a memória 148 | 149 | imc(80, 1.80); // imc aparece no console 150 | 151 | function imc(peso, altura) { 152 | const imc = peso / (altura ** 2); 153 | console.log(imc); 154 | } 155 | ``` -------------------------------------------------------------------------------- /funcoes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Funções 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /funcoes/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/funcoes/script.js -------------------------------------------------------------------------------- /img/javascript.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/img/javascript.jpg -------------------------------------------------------------------------------- /img/js.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/img/js.jpg -------------------------------------------------------------------------------- /numeros-e-operadores/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Números e Operadores 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /numeros-e-operadores/numero-e-operadores.md: -------------------------------------------------------------------------------- 1 | ## Número e operadores 2 | 3 | ```js 4 | 5 | | Números 6 | 7 | var idade = 28; 8 | var gols = 1000; 9 | var pi = 3.14; // ponto para decimal 10 | var exp = 2e10; // 20000000000 11 | 12 | | Precisão para até 15 digitos 13 | 14 | ``` 15 | 16 | ## Operadores Aritméticos 17 | 18 | ```js 19 | var soma = 100 + 50; // 150 // " + " Realiza a soma dos valores. 20 | var subtracao = 100 - 50; // 50 // " - " Realiza a subtração do valores. 21 | var multiplicacao = 100 * 2; // 200 // " * " Realiza a multiplicação do valores. 22 | var divisao = 100 / 2; // 50 // " / " Realiza a divisão dos valores 23 | var expoente = 2 ** 4; // 16 // " ** " Realiza a expoente entre o valor. 24 | var modulo = 14 % 5; // 4 // " % " Realiza o Módulo (resto da divisão) do valor 25 | var incremento = 1++ // 3 // " ++ " Realiza o incremento do valor 1++ = 3 26 | var decremento = 3-- // 1 // " -- " Realiza o Decremento do valor 3-- = 1 27 | ``` 28 | 29 | ## Operadores Aritméticos com strings 30 | 31 | ```js 32 | var soma = '100' + 50; // 10050 // Faz a junção dos 2 valores 33 | var subtracao = '100' - 50; // 50 // Realiza a subtração dos valores 34 | var multiplicacao = '100' * '2'; // 200 // Realiza a multiplicação do valores 35 | var divisao = 'Comprei 10' / 2; // NaN (Not a Number) // Retorna NaN pois Comprei 10 não é um number, logo assim a sintaxe não consegue reconhecer "Comprei" como número. 36 | ``` 37 | 38 | ## Operadores Aritméticos Unários 39 | 40 | ```js 41 | 42 | // Ao colocar o incremento após a váriavel ou número, ele somente irá ler no próximo console.log 43 | var incremento = 5; 44 | console.log(incremento++); // 5 45 | console.log(incremento); // 6 46 | 47 | // Ao colocar o incremento no inicio da váriavel o incremento será lido após a declaração do primeiro console.log 48 | var incremento2 = 5; 49 | console.log(++incremento2); // 6 50 | console.log(incremento2); // 6 51 | 52 | | A mesma coisa serve para decremento --x 53 | ``` 54 | 55 | ## Guia completo de operadores 56 | 57 | | https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Expressions_and_Operators 58 | 59 | -------------------------------------------------------------------------------- /numeros-e-operadores/script.js: -------------------------------------------------------------------------------- 1 | var idade = 2e10; 2 | console.log(idade); -------------------------------------------------------------------------------- /objetos/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Funções 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /objetos/objetos.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/objetos/objetos.md -------------------------------------------------------------------------------- /objetos/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arthurspk/javascript/3c8fc620df341732a15bf33be0c1e6457182e92e/objetos/script.js -------------------------------------------------------------------------------- /scroll-suave/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Teste 8 | 9 | 10 | 11 |
  • 12 |
  • 13 |
  • 14 |
  • 15 |
  • 16 |
  • 17 |
  • 18 |
  • 19 |
  • 20 |
  • 21 |
  • 22 |
  • 23 |
  • 24 |
  • 25 |
  • 26 |
  • 27 |
  • 28 |
  • 29 |
  • 30 |
  • 31 |
  • 32 |
  • 33 |
  • 34 |
  • 35 |
  • 36 |
  • 37 |
  • 38 |
  • 39 |
  • 40 |
  • 41 |
  • 42 |
  • 43 |
  • 44 |
  • 45 |
  • 46 |
  • 47 |
  • 48 |
  • 49 |
  • 50 |
  • 51 |
  • 52 |
  • 53 |
  • 54 |
  • 55 |
  • 56 |
  • 57 |
  • 58 |
  • 59 |
  • 60 |
  • 61 |
  • 62 |
  • 63 |
  • 64 |
  • 65 |
  • 66 |
  • 67 |
  • 68 |
  • 69 |
  • 70 |
  • 71 |
  • 72 |
  • 73 |
  • 74 |
  • 75 |
  • 76 |
  • 77 |
  • 78 |
  • 79 |
  • 80 |
  • 81 |
  • 82 |
  • 83 |
  • 84 |
  • 85 |
  • 86 |
  • 87 |
  • 88 |
  • 89 |
  • 90 |
  • 91 |
  • 92 |
  • 93 |
  • 94 |
  • 95 |
  • 96 |
  • 97 |
  • 98 |
  • 99 |
  • 100 |
  • 101 |
  • 102 |
  • 103 |
  • 104 |
  • 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /scroll-suave/script.js: -------------------------------------------------------------------------------- 1 | // Método 1 - Scroll Suave para o topo 2 | 3 | // const btn = document.querySelector("#topo") 4 | 5 | // btn.addEventListener("click", function () { 6 | // window.scrollTo({ 7 | // top: 0, 8 | // behavior: 'smooth' 9 | // }) 10 | // }) 11 | 12 | 13 | // Método 2 - Scroll suave para o tpo 14 | const btn = document.querySelector("#topo") 15 | 16 | function teste() { 17 | window.scrollTo({ 18 | top: 0, 19 | behavior: 'smooth' 20 | }) 21 | } 22 | 23 | btn.addEventListener('click', teste) -------------------------------------------------------------------------------- /tipos de dados/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Tipos de dados 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tipos de dados/script.js: -------------------------------------------------------------------------------- 1 | var nome = "Arthur"; 2 | var idade = 20; 3 | 4 | var comidaFavorita; 5 | comidaFavorita = "pizza"; 6 | 7 | var timePrimario, 8 | timeSecundario, 9 | timeTerciario, 10 | timeQuartenario, 11 | timeQuintenario; 12 | 13 | var timeUm, 14 | timeDois, 15 | timeTres, 16 | timeQuatro, 17 | timeCincos; 18 | 19 | const valorDoCarro = true 20 | let corDoCarro = 'Azul'; 21 | let portasDoCarro = '4 Portas' 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tipos de dados/tipos-de-dados.md: -------------------------------------------------------------------------------- 1 | ## Tipos de dados 2 | 3 | ```js 4 | | Tipos de dados 5 | 6 | var nome = 'Arthur'; // String = Tipo de declarável 7 | var idade = 28; // Number - Qualquer número 8 | var possuiFaculdade = true; // Boolean - True/false 9 | var time; // Undefined - Sem definação 10 | var comida = null; // Null 11 | var simbolo = Symbol() // Symbol 12 | var novoObjeto = {} // Object 13 | 14 | | Primitivos são dados imutáveis. 15 | 16 | ``` 17 | 18 | ## Soma de string 19 | 20 | ```js 21 | | Como fazer a soma de uma string e concatenar a palavra 22 | 23 | var nome = 'André'; 24 | var sobrenome = 'Rafael'; 25 | var nomeCompleto = nome + ' ' + sobrenome; 26 | ``` 27 | 28 | ## Aspas duplaas, Simples & Template String 29 | 30 | ```js 31 | 'JavaScript é "super" fácil'; 32 | "JavaScript é 'super' fácil"; 33 | "JavaScript é \"super\" fácil"; 34 | `JavaScript é "super" fácil"`; 35 | "JavaScript é "super" fácil"; // Inválido 36 | ``` 37 | 38 | ## Template String: 39 | 40 | ```js 41 | var gols = 1000; 42 | var frase1 = 'Romário fez ' + gols + ' gols'; 43 | var frase2 = `Romário fez ${gols} gols`; | Utilizando Template String '' `` '' 44 | 45 | -------------------------------------------------------------------------------- /variaveis/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Váriaveis 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /variaveis/script.js: -------------------------------------------------------------------------------- 1 | var nome = "Arthur"; 2 | var idade = 20; 3 | 4 | var comidaFavorita; 5 | comidaFavorita = "pizza"; 6 | 7 | var timePrimario, 8 | timeSecundario, 9 | timeTerciario, 10 | timeQuartenario, 11 | timeQuintenario; 12 | 13 | var timeUm, 14 | timeDois, 15 | timeTres, 16 | timeQuatro, 17 | timeCincos; 18 | 19 | const valorDoCarro = true 20 | let corDoCarro = 'Azul'; 21 | let portasDoCarro = '4 Portas' 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /variaveis/variaveis.md: -------------------------------------------------------------------------------- 1 | ## VARIÁVEIS 2 | 3 | ```js 4 | | Responsáveis por guardar dados na memória. 5 | | Inicia com a palavra com: 6 | 7 | var 8 | let 9 | const 10 | 11 | var nome = 'Arthur'; 12 | let idade = 20; 13 | const possuiFaculdade = true; 14 | 15 | ``` 16 | 17 | ```js 18 | | Evitam repetições (DRY) 19 | 20 | var preco = 20; 21 | var totalComprado = 5; 22 | var precoTotal = preco * totalComprado; 23 | 24 | ``` 25 | 26 | ```js 27 | | Sintaxe de uma váriavel 28 | | Palavra chave var seguida do nome, sinal de igual e o valor. 29 | 30 | var nome = 'Arthur'; 31 | var idade = 28; 32 | var possuiFaculdade = true; 33 | 34 | ``` 35 | 36 | ```js 37 | | Utilização da virgula em váriaveis 38 | | Utilizei a vírgula para criar mais de uma variável, sem repetir a palavra chave var. 39 | 40 | var nome = 'Arthur', 41 | idade = 28, 42 | possuiFaculdade = true; 43 | 44 | ``` 45 | 46 | ```js 47 | | Variável sem valor 48 | 49 | var precoAplicativo; 50 | // retorna undefined 51 | 52 | ``` 53 | 54 | ## Sintaxe de nome de váriaveis 55 | 56 | 1° - Os nomes podem iniciar com $, _, ou letras. 57 | 58 | 2° - Podem conter números mas não iniciar com eles 59 | 60 | 3° Case sensitive - O que é? Uma letra faz diferença em sua escrita 61 | Exemplo: nome é diferente de Nome 62 | 63 | 4° - Não utilizar palavras reservadas 64 | Lista de palavras reservadas: https://www.w3schools.com/js/js_reserved.asp 65 | 66 | 5° - Camel case 67 | É comum nomearmos assim: abrirModal 68 | 69 | ```js 70 | 71 | // Inválido 72 | var §nome; 73 | var function; 74 | var 1possuiFaculdade; 75 | 76 | // Válido 77 | var $selecionar; 78 | var _nome; 79 | var possuiFaculdadeNoExterior; 80 | 81 | ``` 82 | 83 | ## Declaração e Hoisting 84 | 85 | ```js 86 | 1° - Declaração 87 | | Erro ao tentar utilizar uma variável que não foi declarada. 88 | 89 | console.log(nome); 90 | // retorna nome is not defined 91 | 92 | 2° - Hoisting 93 | | São movidas para cima do código, porém o valor atribuído não é movido. 94 | 95 | console.log(nome); 96 | var nome = 'André'; 97 | // Retorna undefined 98 | 99 | var profissao = 'Designer'; 100 | console.log(profissao); 101 | // Retornar Designer 102 | ``` 103 | 104 | ## Alteração de valores com váriáveis 105 | 106 | | É possível mudar os valores atribuídos a variáveis declaradas com var e let. Porém não é possível modificar valores das declaradas com const 107 | 108 | | Exemplo: 109 | 110 | ```js 111 | var idade = 28; 112 | idade = 29; 113 | 114 | let preco = 50; 115 | preco = 25; 116 | 117 | const possuiFaculdade = true; 118 | possuiFaculdade = false; 119 | // Retorna um erro 120 | ``` --------------------------------------------------------------------------------