Durante o processo de aprendizado, os lugares que você foi engolido no passado sempre aparecerão repetidamente. A seguir, registrará os pontos de conhecimento que você aprendeu hoje para facilitar a visualização.
Tipos de dados em javascript
Tipos de dados simples (básicos): número, string, booleano, indefinido, nulo
Tipos de dados complexos (de referência): objeto, matriz, data, função, etc.
A seguir, é apresentada uma descrição da diferença entre tipos de dados simples (básicos) e tipos de dados complexos (citados):
Tipo de dados simples: armazenar valores diretamente na pilha, como mostrado na figura abaixo
Tipo de dados complexo: armazenar referências na pilha, como mostrado na figura abaixo
Depois de entender os métodos de armazenamento dos dois tipos de dados acima, você pode distinguir as diferenças entre os dois. Você pode fazer os seguintes exercícios:
var a = 10; var b = a; // Pergunta: Ao alterar o valor de A, o valor de B altera a = 20; console.log (b); // 10
var s1 = new Object (); var s2 = s1; // q: depois de alterar o atributo de S1, o mesmo atributo de S2 altera s1.name = "mh"; console.log (s2.name); // mh
função f2 (arr) {arr = [9,8,7,6,5]; // gerar novo objeto arr [0] =-100; } var array = [1,2,4,7,5]; f2 (matriz); console.log (Array [0]); // 1Promoção variável, declaração de função e escopo variável em JavaScript
Primeiro, vejamos as seguintes perguntas da entrevista:
var num = 10; diversão(); function fun () {console.log (num); var num = 20; }Antes de aprender, responderei diretamente 10. Agora, aprendendo o conceito pré -compilado em JavaScript, conheço o conceito de melhorar a palavra -chave VAR e o conceito de função da declaração. Eu sei que o código acima é equivalente ao seguinte código:
var num; // Global Scope Encontros Var e Função de Função Função Função Fun () {var num; // Encontros do usuário local var Console.log (num); num = 20; } num = 10; diversão();Vejamos a seguinte pergunta:
// Pergunta: Por que o seguinte erro aparece? // não -Esgot TypeError: fnName não é um console de função.log (fnName (1,2)); var fnName = function (a, b) {return a + b; }O código acima é equivalente ao seguinte código:
var fnName; console.log (fnName (1,2)); fnName = function (a, b) {return a + b; }Você pode ver que, porque a função está no lado direito do sinal igual, apenas o VAR será aumentado e um erro de "TypeError não capturado: fnName não é uma função" será relatado.
Para entender o escopo das variáveis, você pode ver o seguinte código:
f1 (); console.log (c); console.log (b); console.log (a); função f1 () {var a = b = c = 20; console.log (c); console.log (b); console.log (a); }Para var a = b = c = 20;, essa atribuição contínua, apenas a será declarada no escopo local, enquanto os escopos de B e C são escopos globais. Portanto, apenas A no escopo global relata um erro como "ReferenceError não capturado: a não é definido".
O ensaio js básico acima (um artigo de leitura obrigatória para novatos) é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.