Tutorial de JS

JS HOME Introdução JS JS Para onde Saída JS Declarações JS Sintaxe JS Comentários JS Variáveis ​​JS JS Let JS Const Operadores JS JS Aritmética Atribuição de JS Tipos de dados JS Funções JS Objetos JS Eventos JS Strings JS Métodos de string JS Pesquisa de String JS Modelos de String JS Números JS Métodos de número JS Matrizes JS Métodos de matriz JS Classificação de matriz JS Iteração de matriz JS Const da matriz JS Datas JS Formatos de data JS Métodos de obtenção de data JS Métodos de conjunto de datas JS JS Math JS Aleatório JS Booleanos Comparações JS Condições JS Interruptor JS Circuito JS para JS Loop Para Entrada JS Loop Para De JS Loop Enquanto Quebra de JS Iteráveis ​​JS Conjuntos JS Mapas JS Tipo JS de Conversão de tipo JS JS bit a bit JS RegExp Erros JS Escopo JS Içamento JS Modo estrito JS JS esta palavra-chave Função de seta JS Classes JS JS JSON Depuração JS Guia de estilo JS Práticas recomendadas de JS Erros de JS Desempenho JS Palavras reservadas JS

Versões JS

Versões JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Histórico de JS

Objetos JS

Definições de objeto Propriedades do objeto Métodos de objeto Exibição de objetos Acessadores de objetos Construtores de objetos Protótipos de Objetos Iteráveis ​​de objeto Conjuntos de objetos Mapas de objetos Referência do objeto

Funções JS

Definições de função Parâmetros de função Invocação de função Chamada de Função Função Aplicar Fechamentos de Função

Classes JS

Introdução à aula Herança de classe Classe Estática

JS Assíncrono

Retornos de chamada JS JS Assíncrono Promessas JS JS Async/Aguardar

JS HTML DOM

Introdução ao DOM Métodos DOM Documento DOM Elementos DOM HTML DOM Formulários DOM CSS DOM Animações DOM Eventos DOM Ouvinte de eventos DOM Navegação DOM Nós DOM Coleções DOM Listas de nós DOM

BOM do navegador JS

Janela JS Tela JS Localização JS Histórico de JS Navegador JS Alerta pop-up JS Temporização JS Cookies JS

APIs da Web JS

Introdução à API da Web API de formulários da Web API de histórico da web API de armazenamento da Web API do trabalhador da Web API de busca da Web API de geolocalização da Web

JS AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

JS JSON

Introdução JSON Sintaxe JSON JSON x XML Tipos de dados JSON Análise JSON JSON Stringify Objetos JSON Matrizes JSON Servidor JSON JSON PHP HTML JSON JSON JSONP

JS x jQuery

Seletores jQuery HTML jQuery jQuery CSS jQuery DOM

Gráficos JS

Gráficos JS Tela JS JS Plotly JS Chart.js JS Google Chart JS D3.js

Exemplos JS

Exemplos JS JS HTML DOM Entrada HTML JS Objetos HTML JS Eventos HTML JS Navegador JS Editor JS Exercícios JS Teste JS Certificado JS

Referências JS

Objetos JavaScript Objetos HTML DOM


JavaScript typeof


Em JavaScript existem 5 tipos de dados diferentes que podem conter valores:

  • string
  • number
  • boolean
  • object
  • function

Existem 6 tipos de objetos:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

E 2 tipos de dados que não podem conter valores:

  • null
  • undefined

O tipo de Operador

Você pode usar o typeofoperador para localizar o tipo de dados de uma variável JavaScript.

Exemplo

typeof "John"                 // Returns "string"
typeof 3.14                   // Returns "number"
typeof NaN                    // Returns "number"
typeof false                  // Returns "boolean"
typeof [1,2,3,4]              // Returns "object"
typeof {name:'John', age:34}  // Returns "object"
typeof new Date()             // Returns "object"
typeof function () {}         // Returns "function"
typeof myCar                  // Returns "undefined" *
typeof null                   // Returns "object"

Por favor, observe:

  • O tipo de dados de NaN é número
  • O tipo de dados de uma matriz é objeto
  • O tipo de dados de uma data é objeto
  • O tipo de dados de null é objeto
  • O tipo de dados de uma variável indefinida é indefinido *
  • O tipo de dados de uma variável que não recebeu um valor também é indefinido *

Você não pode usar typeofpara determinar se um objeto JavaScript é uma matriz (ou uma data).



Dados primitivos

Um valor de dados primitivo é um único valor de dados simples sem propriedades e métodos adicionais.

O typeofoperador pode retornar um destes tipos primitivos:

  • string
  • number
  • boolean
  • undefined

Exemplo

typeof "John"              // Returns "string"
typeof 3.14                // Returns "number"
typeof true                // Returns "boolean"
typeof false               // Returns "boolean"
typeof x                   // Returns "undefined" (if x has no value)

Dados Complexos

O typeofoperador pode retornar um dos dois tipos complexos:

  • function
  • object

O typeofoperador retorna "objeto" para objetos, matrizes e nulo.

O typeofoperador não retorna "objeto" para funções.

Exemplo

typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]             // Returns "object" (not "array", see note below)
typeof null                  // Returns "object"
typeof function myFunc(){}   // Returns "function"

O typeofoperador retorna " object" para arrays porque em arrays JavaScript são objetos.


O tipo de dados de typeof

O typeofoperador não é uma variável. É um operador. Os operadores ( + - * / ) não possuem nenhum tipo de dado.

Mas, o typeofoperador sempre retorna uma string (contendo o tipo do operando).


A propriedade do construtor

A constructorpropriedade retorna a função construtora para todas as variáveis ​​JavaScript.

Exemplo

"John".constructor                // Returns function String()  {[native code]}
(3.14).constructor                // Returns function Number()  {[native code]}
false.constructor                 // Returns function Boolean() {[native code]}
[1,2,3,4].constructor             // Returns function Array()   {[native code]}
{name:'John',age:34}.constructor  // Returns function Object()  {[native code]}
new Date().constructor            // Returns function Date()    {[native code]}
function () {}.constructor        // Returns function Function(){[native code]}

Você pode verificar a propriedade do construtor para descobrir se um objeto é um Array (contém a palavra "Array"):

Exemplo

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

Ou ainda mais simples, você pode verificar se o objeto é uma função Array :

Exemplo

function isArray(myArray) {
  return myArray.constructor === Array;
}

Você pode verificar a propriedade do construtor para descobrir se um objeto é um Date(contém a palavra "Data"):

Exemplo

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

Ou ainda mais simples, você pode verificar se o objeto é uma função Date :

Exemplo

function isDate(myDate) {
  return myDate.constructor === Date;
}


Indefinido

Em JavaScript, uma variável sem valor tem o valor undefined. O tipo também é undefined.

Exemplo

let car;    // Value is undefined, type is undefined

Qualquer variável pode ser esvaziada, definindo o valor como undefined. O tipo também será undefined.

Exemplo

car = undefined;    // Value is undefined, type is undefined

Valores vazios

Um valor vazio não tem nada a ver com undefined.

Uma string vazia tem um valor legal e um tipo.

Exemplo

let car = "";    // The value is "", the typeof is "string"

Nulo

Em JavaScript nullé "nada". É suposto ser algo que não existe.

Infelizmente, em JavaScript, o tipo de dados de nullé um objeto.

Você pode considerar um bug no JavaScript que typeof nullé um objeto. Deve ser null.

Você pode esvaziar um objeto configurando-o para null:

Exemplo

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null;    // Now value is null, but type is still an object

Você também pode esvaziar um objeto definindo-o como undefined:

Exemplo

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined;   // Now both value and type is undefined

Diferença entre indefinido e nulo

undefinede nullsão iguais em valor, mas diferentes em tipo:

typeof undefined           // undefined
typeof null                // object

null === undefined         // false
null == undefined          // true