1. Classificação
Tipos de dados básicos: indefinido, nulo, string, booleano, número
Tipo de dados complexo: objeto
O atributo do objeto é definido na forma de um nome não ordenado e par de valores (nome: valor).
2. Explicação detalhada
1. Indefinido : o tipo indefinido tem apenas um valor: indefinido. Quando uma variável é declarada usando VAR, mas não é inicializada, o valor dessa variável é indefinido.
As variáveis contendo valores indefinidas são diferentes das variáveis que não foram definidas. O exemplo a seguir pode ilustrar:
A cópia do código é a seguinte:
var demo1; // declarado, mas não inicializado
alerta (Demo1); // indefinido
alerta (Demo2); // Relatar um erro, Demo2 não está definido
2. NULL : Existe apenas um valor para o tipo nulo: nulo. Do ponto de vista lógico, o valor nulo representa um ponteiro de objeto vazio.
Se a variável definida estiver pronta para ser usada para salvar o objeto no futuro, é melhor inicializar a variável para nulo em vez de outros valores. Dessa forma, apenas detectando diretamente o valor nulo, você pode saber se a variável correspondente salvou a referência de um objeto, por exemplo:
A cópia do código é a seguinte:
se (carro! = nulo)
{
// Realize algumas operações no objeto do carro
}
De fato, valores indefinidos são derivados de valores nulos, portanto, a ECMA-262 especifica que seus testes de igualdade devem retornar verdadeiros.
alerta (indefinido == nulo); //verdadeiro
Embora nulos e indefinidos tenham esse relacionamento, seus usos são completamente diferentes. De qualquer forma, não é necessário definir explicitamente o valor de uma variável para indefinida, mas a mesma regra não se aplica a NULL. Em outras palavras, desde que a variável destinada a salvar o objeto ainda não tenha salvo o objeto, a variável deve ser explicitamente permitida para salvar o valor nulo. Fazer isso não apenas reflete a convenção de NULL como um ponteiro para objetos nulos, mas também ajuda a distinguir ainda mais o NULL e o indefinido.
3. Booleano : o tipo booleano tem dois valores: verdadeiro e falso. Esses dois valores não são os mesmos que os valores numéricos, portanto, verdadeiro não é necessariamente igual a 1 e false não é necessariamente igual a 0.
Deve -se notar que os valores literais do tipo booleano são sensíveis ao caso, ou seja, nem verdadeiros nem falsos (e outras formas de mistura de casos) são valores booleanos, mas são apenas identificadores.
Embora existam apenas dois valores literais para os tipos booleanos, todos os tipos de valores no JavaScript têm valores equivalentes aos desses dois valores booleanos. Para converter um valor em seu valor booleano correspondente, você pode chamar a função de conversão de tipo boolean (), por exemplo:
A cópia do código é a seguinte:
var message = 'Hello World';
var messageasBoolean = boolean (mensagem);
Neste exemplo, a mensagem da string é convertida em um valor booleano, que é armazenado na variável MessageasBoolean. A função booleana () pode ser chamada de valores de qualquer tipo de dados e um valor booleano sempre será retornado. Quanto a se o valor retornado é verdadeiro ou falso, depende do tipo de dados para converter o valor e seu valor real. A tabela a seguir mostra as regras de conversão para vários tipos de dados e seus objetos.
Essas regras de conversão são muito importantes para entender a execução automática das transformações booleanas correspondentes em declarações de controle de fluxo (como se declarações), por exemplo:
A cópia do código é a seguinte:
var message = 'Hello World';
if (mensagem) // equivalente a if (boolean (mensagem) == true)
{
alerta ("valor é verdadeiro"); // valor é verdadeiro
}
Devido a essa transformação booleana automática, é crucial saber exatamente quais variáveis são usadas na declaração de controle de fluxo.
4. Número: Inteiro e ponto flutuante
4.1 Inteiro: Ao realizar cálculos, todos os números octais e hexadecimais serão convertidos em decimal
4.2 Ponto flutuante: a maior precisão de um valor de ponto flutuante é de 17 bits, portanto, sua precisão é muito menor que a de um número inteiro ao calcular a aritmética. Por exemplo: o resultado de 0,1+0,2 não é 0,3, mas 0,3000000000000000000004. Por exemplo:
A cópia do código é a seguinte:
a = 0,2;
b = 0,1;
if (a+b == 0.3) {
alerta ("olá");
}
outro{
alerta ("oi");
}
O resultado será exibido "Oi", então não teste um valor específico de ponto flutuante.
4.3 NAN: Não Numérico Não é um número, esse valor é usado para representar um caso em que um operando que originalmente queria retornar um valor não retornou um valor (isso não lançará um erro).
A própria Nan tem duas características extraordinárias. Primeiro, qualquer operação envolvendo NAN (por exemplo, NAN/10) retornará a NAN, um recurso que pode causar problemas em cálculos de várias etapas. Em segundo lugar, a NAN não é igual a nenhum valor, incluindo a própria Nan. Por exemplo:
A cópia do código é a seguinte:
alerta (nan == nan); //falso
Existe uma função isnan () em JavaScript. Esta função aceita um parâmetro, que pode ser de qualquer tipo, e a função nos ajudará a determinar se esse parâmetro "não é um valor numérico". Depois de receber um valor, o ISNAN () tenta converter esse valor em um valor numérico. Alguns valores que não são valores numéricos são convertidos diretamente em valores numéricos, como a string "10" ou valores booleanos. Qualquer valor que não possa ser convertido em um valor numérico fará com que essa função retorne true. Por exemplo:
A cópia do código é a seguinte:
alerta (isnan (nan)); //verdadeiro
alerta (isnan (10)); // false (10 é um valor numérico)
alerta (isnan ("10")); // false (pode ser convertido em valor numérico 10)
alerta (isnan ("azul")); // true (não pode ser convertido em valor numérico)
alerta (isnan ("bule123")); // ture (não pode ser convertido em valor numérico)
alerta (isnan (true)); // false (pode ser convertido em um valor de 1)
Existem 3 funções que podem converter valores não numéricos em valores numéricos: número (), parseint () e parsefloat (). A primeira função, a saber, o número da função de transformação (), pode ser usado para qualquer tipo de dados, enquanto as outras duas funções são usadas especificamente para converter seqüências em valores numéricos. Essas três funções retornarão resultados diferentes para a mesma entrada.
As regras de conversão da função número () são as seguintes:
● Se for um valor booleano, verdadeiro e falso será substituído por 1 e 0, respectivamente.
● Se for um valor numérico, é apenas um passe e retorno simples.
● Se for um valor nulo, retorne 0
● Se indefinido, retorne a NAN
● Se for uma string, siga as seguintes regras:
○ Se a string contiver apenas números, convertê -la em um valor decimal, ou seja, "1" se tornará 1 ", 123" se tornará 123 e "011" se tornará 11 (a liderança 0 será ignorada)
○ Se a string contiver um formato de ponto flutuante válido, como "1.1", é convertido para o número de ponto flutuante correspondente (também, a liderança 0 será ignorada)
○ Se a sequência contiver um formato hexadecimal válido, como "0xf", é convertido em um valor inteiro decimal do mesmo tamanho
○ Se a string estiver vazia, converta -a para 0
○ Se a string contiver caracteres que não sejam o formato acima, converta -os em NAN
● Se for um objeto, chame o método ValueOf () do objeto e converta o valor retornado de acordo com as regras anteriores. Se o resultado da conversão for NAN, o método ToString () do objeto é chamado e, em seguida, o valor da string retornado será convertido por sua vez de acordo com as regras anteriores.
A cópia do código é a seguinte:
var num1 = número ("Hello World"); // nan
var num2 = número (""); // 0
var num3 = número ("000011"); // 11
var num4 = número (true); // 1
Como a função número () é mais complicada e irracional ao converter strings, a função parseInt () é mais comumente usada ao processar números inteiros e a função parsefloat () é frequentemente usada ao processar números de ponto flutuante. Para detalhes, consulte: http://www.cnblogs.com/yxfield/p/4167954.html
5. String
O tipo de string é usado para representar uma sequência de caracteres compostos de caracteres unicode zero ou mais de 16 bits, ou seja, uma string. Uma string pode ser representada por citações únicas (') ou citações duplas (").
A cópia do código é a seguinte:
var str1 = "olá";
var str2 = 'Olá';
O comprimento de qualquer string pode ser obtido acessando sua propriedade de comprimento.
A cópia do código é a seguinte:
alerta (str1.length); // Saída 5
Existem duas maneiras de converter um valor em uma string. O primeiro é usar o método ToString () que quase todo valor tem.
A cópia do código é a seguinte:
var idade = 11;
var ageasString = Age.ToString (); // string "11"
var encontrado = true;
var foundasstring = found.toString (); // string "true"
Os valores numéricos, booleanos, objetos e string têm métodos ToString (). Mas valores nulos e indefinidos não têm esse método.
Na maioria dos casos, chamar o método ToString () não precisa passar parâmetros. No entanto, ao chamar o método tostring () do valor numérico, você pode passar um parâmetro: a cardinalidade do valor de saída.
A cópia do código é a seguinte:
var num = 10;
alerta (num.toString ()); // "10"
alerta (num.toString (2)); // "1010"
alerta (num.toString (8)); // "12"
alerta (num.toString (10)); // "10"
alerta (num.toString (16)); //"um"
A partir deste exemplo, podemos ver que, especificando a cardinalidade, o método ToString () alterará o valor de saída. O valor 10 pode ser convertido em diferentes formatos numéricos ao produzir de acordo com a diferente cardinalidade.
Sem saber se o valor a ser convertido é nulo ou indefinido, você também pode usar a função de transformação String (), que pode converter qualquer tipo de valor em uma string. A função String () segue as seguintes regras de conversão:
● Se o valor tiver um método tostring (), o método será chamado (sem parâmetros) e o resultado correspondente será retornado.
● Se o valor for nulo, retorne "nulo"
● Se o valor for indefinido, retorne "indefinido"
6. Objeto
Os objetos são na verdade uma coleção de dados e funções. Os objetos podem ser criados executando o novo operador seguido pelo nome do tipo de objeto a ser criado. Ao criar uma instância do objeto de tipo e adicionar propriedades e (ou) métodos, você pode criar um objeto personalizado.
var o = new Object ();
Quaisquer propriedades e métodos do tipo de objeto também existem em objetos mais específicos. Cada instância do objeto possui as seguintes propriedades e métodos:
● Construtor (construtor) - salva a função usada para criar o objeto atual
● HASOWNPROPERTY (PropertyName) - usado para verificar se a propriedade fornecida existe na instância atual do objeto (não no protótipo da instância). Onde, o nome da propriedade (Name) como o parâmetro deve ser especificado em um formulário de string (por exemplo: O.HasownProperty ("Nome")))
● isPrototypeOf (objeto) - usado para verificar se o objeto de entrada é um protótipo de outro objeto
● PropertyIsEnumerable (PropertyName) - usado para verificar se uma determinada propriedade pode ser enumerada usando a instrução FOR -In.
● tostring () - retorna a representação da string do objeto
● Valueof () - Retorna a sequência do objeto, representação numérica ou booleana. Geralmente, o valor de retorno do método tostring () é o mesmo.
3. Teste pequeno
A cópia do código é a seguinte:
TIPOOF (NAN)
TIPO DE (infinito)
typeof (nulo)
TIPO DE (indefinido)
Muitas entrevistas farão as perguntas acima ~~
O exposto acima é uma introdução a esses 6 tipos de dados JavaScript. Você já entendeu claramente? Espero que você possa melhorar depois de ler este artigo.