Durante el proceso de aprendizaje, los lugares en los que ha sido tragado en el pasado siempre aparecerán una y otra vez. Lo siguiente registrará los puntos de conocimiento que aprendió hoy para una fácil visualización.
Tipos de datos en JavaScript
Tipos de datos simples (básicos): número, cadena, booleano, indefinido, nulo
Tipos de datos complejos (referencia): objeto, matriz, fecha, función, etc.
La siguiente es una descripción de la diferencia entre tipos de datos simples (básicos) y tipos de datos complejos (citados):
Tipo de datos simples: almacene directamente los valores en la pila, como se muestra en la figura a continuación
Tipo de datos complejo: almacene referencias en la pila, como se muestra en la figura a continuación
Después de comprender los métodos de almacenamiento de los dos tipos de datos anteriores, puede distinguir las diferencias entre los dos. Puedes hacer los siguientes ejercicios:
var a = 10; var b = a; // Pregunta: Al cambiar el valor de A, ¿cambia el valor de B a = 20; console.log (b); // 10
var s1 = new Object (); var s2 = s1; // q: Después de cambiar el atributo de S1, el mismo atributo de S2 cambia s1.name = "mh"; console.log (s2.name); // MH
función f2 (arr) {arr = [9,8,7,6,5]; // Generar nuevo objeto arr [0] =-100; } var array = [1,2,4,7,5]; F2 (matriz); console.log (array [0]); // 1Promoción variable, declaración de función y alcance variable en JavaScript
Primero, veamos las siguientes preguntas de la entrevista:
var num = 10; divertido(); function divert () {console.log (num); var num = 20; }Antes de aprender, responderé directamente 10. Ahora, aprendiendo el concepto precompilado en JavaScript, conozco el concepto de mejorar la palabra clave VAR y el concepto de función de la declaración. Sé que el código anterior es equivalente al siguiente código:
var num; // El alcance global encuentra var y función de mejora de la función Fun () {var num; // Encuentra de usuario local VAR Console.log (num); num = 20; } num = 10; divertido();Veamos la siguiente pregunta:
// Pregunta: ¿Por qué aparece el siguiente error? // typeError no capturado: fnname no es una función console.log (fnname (1,2)); var fnname = function (a, b) {return a + b; }El código anterior es equivalente al siguiente código:
var fnname; console.log (fnname (1,2)); fnname = function (a, b) {return a + b; }Puede ver que debido a que la función está en el lado derecho del signo igual, solo se elevará el VAR, y se informará un error de "TypeError no capturado: FNName no es una función".
Para comprender el alcance de las variables, puede ver el siguiente código:
f1 (); console.log (c); console.log (b); console.log (a); función f1 () {var a = b = c = 20; console.log (c); console.log (b); console.log (a); }Para var a = b = c = 20;, tal asignación continua, solo A se declarará en el alcance local, mientras que los ámbitos de B y C son ámbitos globales. Por lo tanto, solo A en el alcance global informa un error como "referenceRorRor no capturado: A no está definido".
El ensayo básico de JS anterior (un artículo de lectura obligada para novatos) es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.