El lenguaje JavaScript es un lenguaje de tipo débil y tiene muchos errores de tipo, por lo que ES6 introduce el concepto de modo estricto.
Si no agrega 'uso estricto', el modo normal es el modo no estricto.
Modo estricto
Agregar 'usar estricto' en la parte superior del archivo js pertenece al modo estricto, y el modo estricto también se puede especificar dentro de la función.
El modo estricto define diferentes modelos de análisis y ejecución para js. En modo estricto, se manejan algunos comportamientos desconcertantes e indefinidos en ECMAScipt 3 y se lanzan excepciones para operaciones inseguras. "Usar estricto" le indicará al motor del navegador que puede cambiar al modo estricto.
La diferencia entre el modo estricto y el modo no estricto
Preguntas comunes de prueba:
Pruebe esta prueba. ¿Puedes hacerlo?
Para hablar de copia profunda de js, tenemos que mencionar los dos tipos de datos de js: tipos de datos básicos y tipos de referencia.
Los nombres de variables y los valores de los tipos de datos básicos se almacenan en la pila, los nombres de variables de los tipos de referencia se almacenan en la pila y los valores se almacenan en el montón. Debido a que se almacenan de manera diferente, se copian de manera diferente.
Valoración
Al asignar un valor a un tipo de datos básico, el tipo de datos básico creado abre un nuevo espacio en la memoria para copiar el valor, mientras que los tipos de referencia utilizan el almacenamiento de direcciones. Si un dato de referencia se asigna directamente a otro dato, equivale a asignar directamente la dirección de su valor almacenado a otra variable, por lo que cambiar el valor de uno también cambiará el valor de la otra.
¿Cuál es la definición de copia encubierta?
Supongamos que hay dos variables, P y copiarP. Si copyP copia P, podemos observar si P ha cambiado modificando copyP. Si dejas que cambie, será una copia superficial. Si no hay cambios, significa una copia profunda.
Al copiar un tipo básico, se abrirá un nuevo espacio de memoria, por lo que los dos valores son independientes entre sí. Cuando se copia un tipo de referencia, depende de si es una dirección de memoria copiada o un montón nuevo. Por lo tanto, la copia profunda es principalmente para datos de tipo de referencia.
Métodos comunes de copia superficial:
1. Asignación directa
2. Asignación de objetos
Métodos comunes de copia profunda:
p>
Los tipos de datos de referencia más utilizados son objetos y matrices, y los datos dentro de los datos de referencia también se pueden diversificar. Al realizar una copia profunda, también se deben implementar métodos de copia adecuados según la estructura de datos. El método de copia profunda específico es el siguiente:
1. La matriz solo contiene tipos de datos básicos.
2. Este objeto solo contiene tipos de datos básicos.
3. Cuando el objeto o matriz contiene uno o más tipos de datos de referencia.
Las aplicaciones comunes de copia profunda y copia superficial son principalmente operaciones de agregar, eliminar y modificar datos.
Preguntas del Pen Test de Dachang:
Esta es una pregunta de entrevista sobre esto. A continuación, hablemos de cómo se divide esto.
Este objeto está vinculado a un entorno de ejecución basado en funciones de tiempo de ejecución:
Después de leer la explicación anterior, puede responder las preguntas de la entrevista anterior.
¿Cómo cambiar esta dirección?
Llamar, vincular y aplicar se utilizan para cambiar este puntero, es decir, para cambiar el contexto cuando se ejecuta la función.
Modifique las preguntas de la entrevista anterior:
Las llamadas, el enlace y la aplicación han cambiado esta dirección y el mayor efecto es lograr la reutilización del código.
En cuanto a la diferencia entre llamar, vincular y aplicar, puedes descubrirla tú mismo.
¡Con el reloj de arriba, las cosas se vuelven simples!
Cuando operan operadores relacionales, los valores de diferentes tipos se convertirán automáticamente en valores del mismo tipo, entonces
1. El lado es un número, la cadena Llame al método Número para convertir la cadena en un número, entonces:
2. Si ambos lados son cadenas, convierta de acuerdo con la codificación Unicode de la cadena, entonces:
3. Comparar Para entradas de cadena, el primer bit se compara primero. Si no son iguales el resultado se obtiene directamente. Si el primer elemento es igual, el segundo elemento seguirá utilizándose para comparar.
4. Los tipos que son todos falsos cuando se convierten a valores booleanos incluyen: indefinido, nulo, 0, NaN, falso y ""
5.NaN representa un no número , pero estos no números también son diferentes, por lo que NaN no es igual a NaN y dos NaN nunca pueden ser iguales.
6. La operación relacional tiene un valor numérico y el otro valor también se convierte a un tipo numérico.
7. Si hay operaciones lógicas, convierta otros tipos de datos a valores booleanos.
8. Compara directamente dos matrices vacías. Las direcciones de la matriz son diferentes, por lo que no son iguales.
¡Puedes dejar los puntos de conocimiento que quieras aprender recientemente o las preguntas de la entrevista en el área de comentarios!