Tais coisas básicas não devem mais ser registradas, mas revisar o passado e aprender as novas primeiro. Vamos começar com o tipo de dados.
JS Seis Tipos de dados principais: número, string, objeto, booleano, nulo, indefinido
String: explicado por citações únicas ou duplas, como "string"
Número: Quais números inteiros, números de ponto flutuante são todos chamados números, você sabe ~
Booleano: isso é verdadeiro e falso
indefinido: indefinido, isto é, você cria uma variável, mas não atribua um valor a ele ~
NULL: Portanto, é chamado Sijiu. nulo não significa nada, nada significa nada
Objeto: sou difícil de explicar isso. É o tipo que não os cinco acima
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tipo de julgamento do tipo de dados
O tipo de pode resolver a maioria dos julgamentos do tipo de dados. É uma operação única. Antes de um valor de operação, seu valor de retorno é uma string. Esta string indica o tipo de número de operação. Portanto, se (typeof (seu valor) == "string") {}
Aqui estão os resultados retornados por vários tipos de dados:
var a = "string"; console.log (a); // stringvar a = 1; console.log (a); // numberVar A = false; console.log (a); // booleanvar a; console.log (tipo de A); // UNLFINEDVAR A = NULL; console.log (tipo de A); // objectVar a = document; console.log (tipo de A); // objectVar A = []; console.log (a); // objectVar A = function () {}; console.log (tipo de a) // função Além de julgar os tipos de dados, você também pode julgar os tipos de funçãoIsso é óbvio. Exceto pelos quatro primeiros tipos, NULL, Object e Array Return todos os tipos de objetos;
Para tipos de funções, a função é retornada, como tipoof (data), tipoof (avaliar), etc.
Então, aqui podemos estender outro problema muito popular e a solução já é comum. Como determinar se os dados são um tipo de matriz?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Método JS para determinar o tipo de matriz
Método 1 Instância de
instância, portanto, o nome significa, instância, exemplo. Portanto, a instância do é usada para determinar se uma variável é uma instância de um objeto. É uma fórmula de operação tridimensional-a diferença mais substancial entre o tipo de
Uma instância de Alerta B?
Pegue uma castanha:
var a = []; console.log (uma instância de matriz) // retorna true
Método 2 Construtor
Definição na definição W3C: Propriedade do construtor retorna uma referência à função da matriz que criou este objeto
Ele retorna o construtor correspondente ao objeto. Em definição, não é muito consistente com a instância, mas os efeitos são os mesmos
Por exemplo: (uma instância de matriz) // a é uma instância de matriz? verdadeiro ou falso
(a.constructor == Array) // O construtor corresponde à instância A correspondente à matriz? verdadeiro ou falso
Pegue uma castanha:
função funcionário (nome, trabalho, nascido) {this.name = name; this.Job = Job; this.born = nascido;} var bill = new Funcionário ("Bill Gates", "Engineer", 1985); console.log (bill.constructor); // Função de saída funcionário (nome, jobtitle, nascido) {this.name = name; this.jobtitle = job; this.born = Born;}Então o método para julgar vários tipos é:
console.log ([]. construtor == Array); console.log ({}. construtor == object); console.log ("string" .constructor == string); console.log ((123) .constructor == número);----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Um método mais rigoroso e geral:
função isarray (object) {return objeto && typeof object === 'object' && Array == Object.Constructor;}! ! Perceber:
Usando a instância e o construtor, a matriz julgada deve ser declarada na página atual! Por exemplo, uma página (página pai) possui uma estrutura, uma página (subpagem) é referenciada na estrutura, uma matriz é declarada na página criança e a atribuída a uma variável da página pai. Neste momento, a variável é julgada, Array == Object.Constructor; retornará falso;
razão:
1. Array é um dados de referência. Durante o processo de transmissão, é apenas uma transferência do endereço de referência.
2. O endereço referenciado pelo objeto nativo da matriz de cada página é diferente. O construtor correspondente da matriz declarado na página infantil é o objeto da matriz da página infantil. Para julgamento na página dos pais, a matriz usada não é igual à matriz da página infantil; Lembre -se, caso contrário, será difícil rastrear o problema!
Método 3: Método de julgamento das características
Todos os métodos acima têm certas falhas, mas devemos acreditar que a sabedoria das massas é onipotente. Podemos julgar seu tipo com base em algumas características da matriz.
function isarray (object) {retorna objeto && typeof object === 'object' && typeof object.length === 'número' && typeof object.splice === 'function' && // apenas determine se a propriedade de comprimento é enumerável para matrizes, false será obtido! (Object.propertyiSenumerable ('comprimento');}Ter comprimento e emenda não é necessariamente uma matriz, porque o fator de julgamento mais importante é adicionar atributos aos objetos, mas não enumrando atributos de comprimento.
PS: Aqui, popularizamos o método da propriedadesenumerable:
objeto. PropertyIsEnumerable (pronome)
Determinar se o atributo especificado pode ser listado
NOTA: Se o pronome existir em um objeto e pode ser exaustivamente enumerado usando um para… em loop, a propriedade da propriedadesenumerável retorna true. Se o objeto não tiver a propriedade especificada ou a propriedade especificada não for enumerável, a propriedade PropertyIsenumerable retornará falsa.
A propriedade PropertyIsEnumerable não leva em consideração objetos na cadeia de protótipos.
Exemplo:
var a = novo array ("maçã", "banana", "cactus"); document.write (a.propertyisenumerable (1));Método 4 O método mais fácil
função isarray (o) {return object.prototype.toString.call (o) === '[Array do objeto]';}O acima é o conteúdo inteiro deste artigo. Para obter mais informações sobre JavaScript, você pode conferir: "Javascript Reference Tutorial" e "JavaScript Code Style Guide". Eu também espero que todos apoiem mais wulin.com.