JavaScript Primer
Tipos Primitivos
Nome | Descrição |
|---|---|
number | Usado para representar valores numéricos. JavaScript não diferencia entre inteiros e valores de ponto flutuante. |
string | Usado para representar dados de texto. |
boolean | Pode ter valores |
symbol | Usado para representar valores constantes únicos, como chaves em coleções. |
null | Pode receber apenas o valor |
undefined | Usado quando uma variável foi definida mas não foi atribuído um valor. |
object | Usado para representar valores compostos, formados a partir de propriedades e valores individuais. |
Comparação de Igualdade Abstrata (==)
A comparação x == y produz true ou false seguindo estas regras:
Se
Type(x)é o mesmo queType(y), então:Retorna o resultado da Comparação de Igualdade Estrita
x === y
Se
xénulleyéundefined, retornatrueSe
xéundefinedeyénull, retornatrueSe
Type(x)é Number eType(y)é String, retorna o resultado da comparaçãox == ToNumber(y)Se
Type(x)é String eType(y)é Number, retorna o resultado da comparaçãoToNumber(x) == ySe
Type(x)é Boolean, retorna o resultado da comparaçãoToNumber(x) == ySe
Type(y)é Boolean, retorna o resultado da comparaçãox == ToNumber(y)Se
Type(x)é String, Number ou Symbol eType(y)é Object, retorna o resultado da comparaçãox == ToPrimitive(y)Se
Type(x)é Object eType(y)é String, Number ou Symbol, retorna o resultado da comparaçãoToPrimitive(x) == yRetorna
false
Comparação de Igualdade Estrita (===)
A comparação x === y produz true ou false seguindo estas regras:
Se
Type(x)é diferente deType(y), retornafalseSe
Type(x)é Number, então:Se
xé NaN, retornafalseSe
yé NaN, retornafalseSe
xé o mesmo valor Number quey, retornatrueSe
xé +0 eyé -0, retornatrueSe
xé -0 eyé +0, retornatrueRetorna
false
Retorna
SameValueNonNumber(x, y)
Desviando da coerção de tipo
Trabalhando com funções
Como por padrão vai fazer com que a coersão ou alguma especificidade do tipo, aconteça ou seja que com tipos como string, boolean, object a função vai ser invocada
Strict Mode
É uma forma de escrever JavaScript diferente com suas próprias regras e claro com regras do ECMA, mas tento suas diferenças
Uma das questões é que ele elimina os erros silênciosos por throw errors
Proibe algumas sintaxes como as que vão ser definidas nas versões futuras do ECMAScript
Entendo this in Arrow Functions
Arrow Functions são diferentes das funções comuns:
Não possuem os valores do seu this e herança