In the previous section, we mentioned a little bit about data types. Data or values have data types. Data types describe the characteristics of data. Data types can be divided into two:
Na sessão anterior, nós mencionamos um pouco sobre tipos de dados. Tipos de dados decrevem as caracteristicas do dado, e podem ser divididos em duas categorias:
1. Primitive data types
1. Tipos de dados primitivos
2. Non-primitive data types(Object References)
2. Tipos de dados não primitivos(de referência do objeto.)
### Primitive Data Types
### Tipos de Dados Primitivos
Primitive data types in JavaScript include:
Tipos de dados primitivos em JavaScript inclui:
1. Numbers - Integers, floats
1. Numbers - Inteiros, floats
2. Strings - Any data under single quote, double quote or backtick quote
2. Strings - Qualquer dado entre aspas simples, aspas duplas e crase
3. Booleans - true or false value
3. Booleans - valores verdadeiros e falsos
4. Null - empty value or no value
4. Null - valor vazio ou sem valor
5. Undefined - a declared variable without a value
5. Undefined - variável declarada sem um valor
6. Symbol - A unique value that can be generated by Symbol constructor
6. Symbol - Um valor único que pode ser gerado por um construtor de símbolo
Non-primitive data types in JavaScript includes:
Tipos de dados não primitivos em JavaScriot inclui:
1. Objects
1. Objetos
2. Arrays
2. Arrays
Now, let us see what exactly primitive and non-primitive data types mean.
Agora, vamos ver exatamente oque significa tipos de dados primitivos e não primitivos.
*Primitive* data types are immutable(non-modifiable) data types. Once a primitive data type is created we cannot modify it.
*Primitivo* são tipos de dados imutáveis(nao-modificável). Uma vez criado um tipo de dado primitivo nós não podemos mais modifica-lo.
**Example:**
**Exemplo:**
```js
```js
let word = 'JavaScript'
let word = 'JavaScript'
```
```
If we try to modify the string stored in variable *word*, JavaScript should raise an error. Any data type under a single quote, double quote, or backtick quote is a string data type.
Se nós tentarmos modificar uma string armazenada na variável *word, JavaScrip irá mostar um error. Qualquer dados entre aspas simples, aspas duplas, ou aspas é um string tipo de dado.
```js
```js
word[0] = 'Y'
word[0] = 'Y'
```
```
This expression does not change the string stored in the variable *word*. So, we can say that strings are not modifiable or in other words immutable.
Esta expressão não muda a string armazenada na variável *word*. Então, podemos dizer que strings não são modificavéis ou in outras palavras imutáveis.
Primitive data types are compared by its values. Let us compare different data values. See the example below:
Tipos de dados primitivos são comparados pelo seu valor. Vamos comparar valores de dados diferentes. Veja o exemplo abaixo:
```js
```js
let numOne = 3
let numOne = 3
@ -104,19 +104,19 @@ let lightOff = false
console.log(lightOn == lightOff) // false
console.log(lightOn == lightOff) // false
```
```
### Non-Primitive Data Types
### Tipos de Dados Não Primitivos
*Non-primitive* data types are modifiable or mutable. We can modify the value of non-primitive data types after it gets created.
*não primitivos* são tipos de dados modificáveis ou mutáveis. Nós podemos modificar o valor de um dado tipo não primitivo depois de criado.
Let us see by creating an array. An array is a list of data values in a square bracket. Arrays can contain the same or different data types. Array values are referenced by their index. In JavaScript array index starts at zero. I.e., the first element of an array is found at index zero, the second element at index one, and the third element at index two, etc.
Vamos ver isso criando um array. Um array é uma lista de valores de dados entre colchetes. Arrays que contém o mesmo ou diferente tipos de dados. Valores de Arrays são referenciados pelo seu index. Em JavaScript o index do array começa em zero. em outras palavras, o primeiro elemento de um array é encontrado no index zero, o segundo elemento no index um, e no terceiro elemento no index dois, etc.
```js
```js
let nums = [1, 2, 3]
let nums = [1, 2, 3]
nums[0] = 10
nums[0] = 1
console.log(nums) // [10, 2, 3]
console.log(nums) // [1, 2, 3]
```
```
As you can see, an array, which is a non-primitive data type is mutable. Non-primitive data types cannot be compared by value. Even if two non-primitive data types have the same properties and values, they are not strictly equal.
Como você pode ver, um array, que é um tipo de dado não primitivo é mutável. Tipos de dados nao primitivos nao podem ser comparador pelos seus valores. Mesmo se dois tipos de dados não primitivos tem as mesmas propriedades e valores, eles não podem ser estritamentes iguais.
```js
```js
let nums = [1, 2, 3]
let nums = [1, 2, 3]
@ -139,8 +139,7 @@ country:'Finland'
console.log(userOne == userTwo) // false
console.log(userOne == userTwo) // false
```
```
Rule of thumb, we do not compare non-primitive data types. Do not compare arrays, functions, or objects.
Regra de ouro, nos nao comparamos tipos de dados nao primitivos. Nao se compara arrays, funções, ou objetos. porque eles são comparados pela sua referencia ao invez do valor. Dois objetos só são estritamentes iguais se a sua referência for o mesmo objeto subjacente.
Non-primitive values are referred to as reference types, because they are being compared by reference instead of value. Two objects are only strictly equal if they refer to the same underlying object.
If you have a hard time understanding the difference between primitive data types and non-primitive data types, you are not the only one. Calm down and just go to the next section and try to come back after some time. Now let us start the data types by number type.
If you have a hard time understanding the difference between primitive data types and non-primitive data types, you are not the only one. Calm down and just go to the next section and try to come back after some time. Now let us start the data types by number type.
## Numbers
## Números
Numbers are integers and decimal values which can do all the arithmetic operations.
Numbers are integers and decimal values which can do all the arithmetic operations.
Let's see some examples of Numbers.
Let's see some examples of Numbers.
### Declaring Number Data Types
### Declarando Tipos de Dados Numéricos
```js
```js
let age = 35
let age = 35
@ -181,7 +180,7 @@ const bodyTemp = 37 // oC average human body temperature, which is a consta
- [Introdução Tipo de Dados](#introduction-to-data-types)
- [Introdução a tipo de Dados](#introdução-a-tipo-de-dados)
- [Números](#numbers)
- [Números](#números)
- [Strings](#strings)
- [Strings](#strings)
- [Booleanos](#booleans)
- [Booleanos](#booleans)
- [Undefined](#undefined)
- [Undefined](#undefined)
- [Null](#null)
- [Null](#null)
- [Verificando Tipo de Dados](#checking-data-types)
- [Verificando Tipos de Dados](#verificando-tipos-de-dados)
- [Novamente Comentarios](#comments-again)
- [Comentários novamente](#comentários-novamente)
- [Variáveis](#variables)
- [Variáveis](#variáveis)
- [💻 Dia 1: Exercícios](#-day-1-exercises)
- [💻 Dia 1: Exercícios](#-dia-1-exercícios)
# 📔 Dia 1
# 📔 Dia 1
@ -135,7 +135,7 @@ Sem conhecimentos prévios de programação é exigido para seguir este desafio.
Eu acredito que voce tem a motivação e o forte desejo de ser um desenvolvedor, um computador e internet. Se voce tem isso, então você tem tudo para iniciar.
Eu acredito que voce tem a motivação e o forte desejo de ser um desenvolvedor, um computador e internet. Se voce tem isso, então você tem tudo para iniciar.
## Instalando Node.js
## Instalação Node.js
Você pode não precisar do Node.js agora mas você precisará mais tarde. Instalação do [node.js](https://nodejs.org/en/).
Você pode não precisar do Node.js agora mas você precisará mais tarde. Instalação do [node.js](https://nodejs.org/en/).
@ -248,7 +248,7 @@ Nós podemos adicionar comentários para nosso código. Comentários são import
Linguagens de programação são similares com a linguagem humana. Portugês ou qualquer outra linguagem usa palavras, frases, orações, períodos, e outras mais para criar uma mensagem com significado. A definição em Português de sintaxe é _ Estrutura essencial para que frases, orações e períodos façam sentido e sejam de fácil compreensão por parte do leitor_. A definição técnica é a estrutura de declarações em uma linguagem de computador. Linguagens de programação tem sintaxes. JavaScript é uma linguagem de programação como outras linguagens de programação tem sua própria sintaxe. Se nós nao escrevermos uma sintaxe que JavaScript entenda, diferentes tipos de errors aparecerá. Nós iremos explorar diferentes tipos de errors no JavaScript depois. Por enquanto, vamos ver sintaxes de errors.
Linguagens de programação são similares com a linguagem humana. Portugês ou qualquer outra linguagem usa palavras, frases, orações, períodos, e outras mais para criar uma mensagem com significado. A definição em Português de sintaxe é _ Estrutura essencial para que frases, orações e períodos façam sentido e sejam de fácil compreensão por parte do leitor_. A definição técnica é a estrutura de declarações em uma linguagem de computador. Linguagens de programação tem sintaxes. JavaScript é uma linguagem de programação como outras linguagens de programação tem sua própria sintaxe. Se nós nao escrevermos uma sintaxe que JavaScript entenda, diferentes tipos de errors aparecerá. Nós iremos explorar diferentes tipos de errors no JavaScript depois. Por enquanto, vamos ver sintaxes de errors.
![Error](images/raising_syntax_error.png)
![Error](/images/raising_syntax_error.png)
Eu fiz uma confusão proposital. Como resultado, criou vários errors. Na realidade, a sintaxe é muito informativa. Informa quais tipos de errors foi feito. lendo as mensagens do feedback de error, nós podemos corrigir a sintaxe e resolver o problema. O processo de identificar e remover errors de um programa é chamado de Debugging. Vamos resolver os errors:
Eu fiz uma confusão proposital. Como resultado, criou vários errors. Na realidade, a sintaxe é muito informativa. Informa quais tipos de errors foi feito. lendo as mensagens do feedback de error, nós podemos corrigir a sintaxe e resolver o problema. O processo de identificar e remover errors de um programa é chamado de Debugging. Vamos resolver os errors:
@ -296,7 +296,7 @@ Visual Studio Code é editor de texto open-source muito popular. Eu poderia reco
Se você instalou o Visual Studio Code, Vamos começar usando-o.
Se você instalou o Visual Studio Code, Vamos começar usando-o.
#### Como Usar Visual Studio Code
#### Como Usar o Visual Studio Code
Abra o Visual Studio Code clicando duas vezes com o mouse no ícone. Quando abrir, você terá esta interface. Tente interagir com os ícones rotulados.
Abra o Visual Studio Code clicando duas vezes com o mouse no ícone. Quando abrir, você terá esta interface. Tente interagir com os ícones rotulados.
@ -424,7 +424,7 @@ Scripts Externo no _body_:
Abra o console do navegador para ver o output do `console.log()`.
Abra o console do navegador para ver o output do `console.log()`.
### Múltiplos Scripts Externo
### Múltiplos Scripts Externos
Nós tambem podemos colocar o link de vários arquivos externos de JavaScript em uma página web.
Nós tambem podemos colocar o link de vários arquivos externos de JavaScript em uma página web.
Crie um `helloworld.js` documento dentro da pasta 30DaysOfJS e escreva o seguinte código.
Crie um `helloworld.js` documento dentro da pasta 30DaysOfJS e escreva o seguinte código.
@ -454,7 +454,7 @@ _Seu arquivo main.js deve estar abaixo de todos os outros scripts_. E isto é mu
Em JavaScript e tambem em outras linguagens de programação, existem vários tipos de dados. Os seguintes são tipos de dados primitivos do JavaScript: _String, Number, Boolean, undefined, Null_, and _Symbol_.
Em JavaScript e tambem em outras linguagens de programação, existem vários tipos de dados. Os seguintes são tipos de dados primitivos do JavaScript: _String, Number, Boolean, undefined, Null_, and _Symbol_.
### Number
### Números
- Integers: Inteiros (Negativo, zero e positivos) números
- Integers: Inteiros (Negativo, zero e positivos) números