Por que sempre usar ‘===’ em Javascript

Um exemplo é melhor do que mil palavras.

new Number(10) == 10 // true
new Number(10) === 10 // false

O que está acontecendo? Você está comparando um objecta um valor primitivo. Isso se deve ao uso da palavra-chavenew

typeof Number(10) // returns number
typeof 10 // returns number
typeof new Number(10) // returns object

Este é um erro comum para pessoas que pensam que tudo em Javascript é um objeto * e usam a newpalavra descuidadamente.

  • (Espere, não é? Então por que eu posso fazer (10) .toString ()? Javascript “quebra” valores primitivos em “objetos complexos” quando você usa métodos com eles, mas depois os desembrulha depois de terminar, retornando-os ao seu não -valores do objeto)