Conhecimento básico de variáveis JavaScript, tipos de dados
O que é JavaScript?
JavaScript é uma linguagem de script literal, uma linguagem baseada em protótipos de tipagem dinâmica e fraca. Popularidade: JS é a parte mais importante do código front-end (camada de comportamento). É comumente usado para manipular páginas HTML , responder às operações do usuário e verificar a transmissão de dados .
Declarar variável
Use let
ou var
declare variáveis, que podem ser usadas para armazenar vários tipos de dados para uso posterior.
Regras de nomenclatura de variáveis
Sensível estritamente a maiúsculas e minúsculas;
Só pode conter _ $ alfanumérico , não pode começar com um número;
Não pode usar palavras-chave / palavras reservadas;
A menos que seja necessário, não substitua a API existente;
Veja o nome sabe o significado.
A diferença entre var e let:
** var: ** Quando a página carrega, há dois processos: 1. Primeiro defina o estágio
Irá encontrar as variáveis definidas por var no escopo atual (apenas definir variáveis, não atribuir valores antecipadamente)
2. Estágio de execução
Comece do início e execute o código para baixo
1) Não é considerado um escopo em if, for, while ···. As variáveis definidas nestes são iguais às variáveis globais e são consideradas apenas como um escopo na função function ().
console.log(a); //undefined
if(false){
var a = 10;
}
console.log(a); //undefined
a:是全局变量
2) Ao definir a mesma variável, esta substituirá a anterior.
** let: ** 1) Não apenas a função é considerada como um escopo, mas também como um escopo dentro se, para, ···, as variáveis definidas não forem variáveis globais
2) Variáveis indefinidas não podem ser usadas com antecedência
console.log(a);
let a = 10;
3) O mesmo escopo não pode permitir a mesma variável
let a = 1;
let a = 2;
tipo de dados
Os tipos de dados são divididos em:
Tipos de dados básicos: número, string, booleano, indefinido, nulo
Tipos de dados complexos: tipos de dados de referência
Tipo de dados básico
tipo de número
Os tipos de número incluem inteiros, decimais (números de ponto flutuante)
Especial: NAN é um tipo de número
let a = 10;
let b = 1.1;
tipo string string
Os tipos de string são colocados entre aspas simples, aspas duplas e colchetes de string de modelo.
Os colchetes podem ser chinês, inglês, números e símbolos, mas as aspas simples, aspas duplas e strings de modelo que definem o tipo de string não podem ser aninhados. Se você precisar adicioná-los, será necessário usar símbolos de escape.
let a = "中文";
let b = 'english';
let c = `111`;
let d = "中"国""; //这种写法错误
let f = "中\"国\""; //正确写法
tipo booleano booleano
O tipo booleano possui apenas verdadeiro e falso: verdadeiro e falso;
let a = false;
let b = true;
tipo indefinido indefinido
Um tipo indefinido é apenas uma declaração de não atribuído. Não apontando para nada
let a ;
let b = undefined;
Ponteiro nulo
Não sei qual é o valor da variável no início, mas é certo que a variável é armazenada como um tipo de objeto
let a = null;
Tipo de dados de referência
Tipo de objeto
Array
Uma matriz é um pedaço de dados, que é usado para armazenar um grupo de dados
let a = [];//定义
let b = [100,"数组",1,true];
//取数据,数组里面的数都有一个下标,利用下标取数据,从0开始
console.log( b[2] ); //结果是1
console.log( b.length ); //取长度,为4
//给某一项重新赋值
a[0] = 20;
Dados de objeto de objeto
Objeto: a descrição de uma coisa
Dois nomes de atributos não podem ser iguais, o mesmo será sobrescrito;
Os dados no objeto não têm ordem.
let a = {
//(属性)键 : 值
name : "姓名",
age : 20,
height : "175cm",
};
//取值
console.log(a.name); //方法一
console.log(a["name"]); //方法二,[]里面表示一个数据,没有加“”号表示是一个变量
//修改某个属性
a.age = 22;
//删除某个属性
delete a.age;
//添加新属性
a.tel = "12345678901";
Igual e diferente com array:
Mesmo: pode armazenar dados diferentes; pode armazenar vários dados
Diferente: há uma descrição para cada dado, chamada atributo
Valor aninhado
let a = {
//(属性)键 : 值
name : "姓名",
age : 20,
height : "175cm"
friend:{
name : "名字",
hobby : ["唱歌","画画","弹琴"]
}
};
//取数据
console.log( a.friend.hobby[2]); //弹琴
função função
Encapsule um monte de código, para que o navegador não seja chamado imediatamente após a execução, a menos que a função seja chamada
function a (){
//定义一个函数,a为函数名
}
//函数调用
a();
Objeto de nó de objeto integrado
Ele foi definido em JavaScript com antecedência e pode ser obtido sem definição.
Por exemplo: janela, documento
operador typeof
Usado para detectar o tipo de dados básicos, o retorno é uma string
console.log( typeof 10 ); //number
console.log( typeof "10" ); //string
console.log( typeof true ); //boolean
console.log( typeof undefined ); //undefined
console.log( typeof null ); //特殊:返回的是object
console.log( typeof [] ); // object
console.log( typeof {} ); //object
console.log( typeof function a(){} ); //返回function,但这个是函数,属于的是object类型
A diferença entre o tipo de valor e o tipo de dados de referência
Tipo de valor
O tipo de valor se refere ao valor do tipo primitivo, também chamado de tipo básico.
Tipo de dados: número, string, booleano, nulo, indefinido
Armazenado na pilha, ocupa um espaço fixo de memória e é destruído após o uso
Método de atribuição: 1) Copie o valor e crie um novo objeto
2) Salvar e copiar são o próprio valor
3) Os dois dados são completamente independentes na memória
Valor imutável
O escopo está no escopo da função. Ele entra em vigor quando a função é modificada internamente e se torna inválido quando a função é destruída.
A comparação de objetos e objetos é: comparação de valores
Detecção de tipo: operador typeof
Tipo de referência
O valor de referência é o valor do tipo de guia.
Tipo de dados: objeto, função, matriz, dados, regexp
Armazenado na pilha, ele ocupa um espaço de memória instável e não pode ser destruído após o uso. Somente quando um objeto não tem referências, o mecanismo de coleta de lixo do sistema o reciclará e o destruirá.
Método de atribuição: 1) Cópia da referência, crie uma nova referência
2) Salvar e copiar é um ponteiro para o objeto
3) O objeto construído usando o método new () é um tipo de referência
Valor da variável
O escopo é o valor na área de dados de tempo de execução que é modificado quando a função é modificada. Mesmo se a função for destruída, o valor da variável ainda será alterado.
A comparação de objetos e objetos é: comparação de endereços
Detecção de tipo: operador instanceof