Conceptos básicos
javascript是一门解释型的语言,浏览器充当解释器。js执行引擎并不是一行一行的执行,而是一段一段的分析执行。Retrasar guiones
El atributo diferido se define en HTML4.0.1, que se utiliza para indicar que el script no afectará la construcción de la página cuando se ejecute. En otras palabras, el script se retrasará hasta que toda la página se haya analizado antes de la ejecución. Por lo tanto, establecer el atributo de diferir en el elemento <Script> es equivalente a decirle al navegador que se descargue de inmediato, pero retrasando la ejecución. En documentos XHTML, establezca el atributo de diferir para defer=“defer"
Guiones asíncronos
html5 define el atributo async para <script>. Toda la propiedad es similar a la propiedad de diferir y se utiliza para cambiar el comportamiento de los scripts de procesamiento. Del mismo modo, de manera similar a Difer, Async solo funciona con archivos de script externos y le dice al navegador que descargue el archivo de inmediato. Pero a diferencia de la difusión, los scripts marcados como async no garantizan la ejecución en el orden en que se especifican.
El propósito de especificar Async es evitar que la página espere que el archivo de script se descargue y ejecute, cargando así otros contenidos de la página de manera asincrónica. Por lo tanto, se recomienda que los scripts asincrónicos no operen DOM durante la carga
distingue mayúsculas y minúsculas
Todo en ECMAScript (incluidas variables, nombres de funciones y operadores) es sensible a las minas.
1. Variables JScript
Las variables se establecen en la memoria cuando se usan por primera vez, por lo que luego se hace referencia en scripts. Declararlo antes de usar variables. Las declaraciones variables se pueden usar utilizando la palabra clave VAR.
var count, amount, level; // 用单个var 关键字声明的多个声明。
Nombres variables
Los nombres de variables incluyen variables globales, variables locales, variables de clase, parámetros de función, etc. Todos entran en esta categoría.
El nombramiento variable está compuesto por el prefijo de tipo + palabras significativas, y la legibilidad de variables y funciones aumenta con la nomenclatura de camello. Por ejemplo: Susername, ncount.
Especificación de prefijo:
Cada variable local debe tener un prefijo de tipo, que se puede dividir en:
S: representa una cadena. Por ejemplo: sname, shtml; N: Representa un número. Por ejemplo: npage, ntotal; B: Representa la lógica. Por ejemplo: Bchecked, Bhaslogin; A: representa una matriz. Por ejemplo: Alist, Agrup; R: Representa una expresión regular. Por ejemplo: romain, remail; F: representa una función. Por ejemplo: fgethtml, finit; o: representa otros objetos no mencionados anteriormente, como: Obutton, Odate; G: Representa variables globales, como: Gusername, Glogintime;
JScript es un lenguaje sensible al caso. Crear un nombre de variable legítimo debe seguir las siguientes reglas:
Tenga en cuenta que el primer personaje no puede ser un número.
Puede seguir cualquier letra o número y subrayar, pero no espacios
El nombre de la variable no debe ser una palabra reservada.
javascript es un lenguaje débilmente escrito, y JavaScript ignora los espacios innecesarios. Puede agregar espacios al script para mejorar su legibilidad.
var es una palabra reservada para javascript , lo que indica que lo siguiente es la descripción variable, el nombre de la variable es un identificador definido por el usuario y las variables están separadas por comas.
Si se declara una variable pero no se le asigna ningún valor, la variable existe y su valor es el valor de JScript indefinido.
Conversión de tipo de fuerza
En JScript, las operaciones se pueden realizar en diferentes tipos de valores sin preocuparse por las excepciones del intérprete JScript. En su lugar, el intérprete JScript cambia automáticamente (emite) uno de los tipos de datos a otro tipo de datos y luego realiza la operación. Por ejemplo:
El valor del resultado del cálculo se agrega a la cadena y el valor de fundición en una cadena. Agregar el valor booleano a la cadena arroja el valor booleano a una cadena. Agregar el valor numérico al valor booleano lanza el valor booleano a un valor numérico.
Para convertir explícitamente una cadena a un entero, use parseInt . Para convertir explícitamente una cadena en un número, use parseFloat .
Lifetime of JavaScript Variables: cuando declara una variable dentro de una función, solo puede acceder a la variable en esa función. Al salir de la función, esta variable se revocará. Esta variable se llama variable local. Puede usar variables locales con el mismo nombre en diferentes funciones, porque solo las funciones que declararon variables pueden reconocer cada variable.
Si declara una variable fuera de una función, todas las funciones en la página pueden acceder a la variable. La vida útil de estas variables comienza después de que se declaran y termina cuando la página está cerrada.
mapa mental variable JS
2. JS Tipo de datos
JScript tiene tres tipos -> tipos de datos principales, dos tipos de datos compuestos y dos tipos de datos especiales.
Tipos de datos principales (básicos)
字符串数值布尔Tipo de datos compuesto (referencia)
对象数组Tipos de datos especiales
Null`Undefined`Tipo de datos de cadena: el tipo de datos de cadena se usa para representar el texto en JScript. En JS, mientras que tanto las citas dobles ("") como las citas individuales ('') pueden representar cadenas, casi no tienen diferencia. Pero usar solo cotizaciones dobles ("") para indicar una cadena se considera la mejor.
Un valor de cadena es una cadena de ceros o más caracteres Unicode (letras, números y signos de puntuación) organizados juntos.
¿Qué es Unicode?
Unicode proporciona valores únicos para cada personaje, independientemente de la plataforma, el programa o el lenguaje. Unicode se desarrolla para proporcionar una codificación unificada para procesar todos los personajes que existen en el mundo.
Tipo de datos numéricos
Necesitamos entender que JScript representa internamente todos los valores como valores de punto flotante, por lo que no hay diferencia entre enteros y valores de puntos flotantes en JScript.
Tipo de datos booleanos
Boolean (lógico) solo puede tener dos valores: Verdadero o Falso.
matrices y objetos js
Para más detalles, consulte mi artículo -> JavaScript Learning Resumen - Parte de matriz y objeto
Tipo de datos nulo: puede borrar el contenido de una variable asignando un valor nulo a una variable.
typeof en JScript informará el valor null como tipo Object , no tipo null .
<html xmlns = "http://www.w3.org/1999/xhtml" xml: lang = "en"> <fead> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <pitle> </script type = "text/javaScript" nulo); </script> </head> <body> </body> </html>
null se usa para representar un objeto que aún no ha existido, y a menudo se usa para representar una función que intenta devolver un objeto que no existe.
Tipo de datos Undefined :
El valor indefinido se devolverá en la siguiente situación:
对象属性不存在,声明了变量但从未赋值。Diferencia entre nulo e indefinido
alerta (typeOf indefinido); // alerta "indefinida" (typeOf null); // alerta de salida "objeto" (nulo == Undefined); // Salida "Verdadero"
Ecmascript cree que undefinado se deriva de NULL, por lo que se definen como iguales.
alerta (nulo === Undefined); // Alerta "False" de salida (typeof null == typeOf indefinido); // Salida "Falso"
NULL e indefinidos son diferentes en los tipos, por lo que la salida "falsa". Y === significa igualdad absoluta, aquí nulo === salida indefinida falsa
Además, aquí hay un tipo de datos más importante: tipo de datos de referencia
Tipo de datos de referencia
El tipo de datos de referencia de JavaScript es un objeto almacenado en la memoria del montón. JavaScript no permite el acceso directo a la ubicación y la operación del espacio de memoria del montón. Solo puede operar la dirección de referencia del objeto en la memoria de la pila. Por lo tanto, los datos de tipo de referencia se almacenan realmente en la memoria de la pila como la dirección de referencia del objeto en la memoria del montón. Esta dirección de referencia le permite encontrar rápidamente objetos almacenados en la memoria de Heap.
Demostremos el proceso de asignación de tipos de datos de referencia
Por supuesto, agregar un atributo de nombre a OBJ2 en realidad está agregando un atributo de nombre a los objetos en la memoria del montón. OBJ2 y OBJ1 Guardar solo la dirección de referencia del objeto de memoria del montón en la memoria de pila. Aunque también se copian, el objeto señalado es el mismo. Por lo tanto, cambiar OBJ2 provoca el cambio de OBJ1.
Los valores de tipo básico se refieren a segmentos de datos simples almacenados en la memoria de la pila, es decir, una ubicación donde dichos valores se almacenan completamente en la memoria.
El valor de tipo de referencia se refiere a aquellos objetos almacenados en la memoria de montón, es decir, la variable es en realidad solo un puntero, que apunta a otra ubicación en la memoria, donde se guarda el objeto.
En resumen, la memoria de Heap almacena los valores de referencia, y las almacenes de la pila almacenan valores de tipo fijo.
En ECMAScript , las variables pueden tener dos tipos de valores, a saber, el valor original y el valor de referencia.
Un segmento simple de datos donde los valores originales se almacenan en la stack , es decir, sus valores se almacenan directamente en la ubicación donde se accede a la variable. El objeto referenciado almacenado en el montón ( heap ), es decir, el valor almacenado en la variable es un puntero ( point ) que apunta a la memoria donde se almacena el objeto.
<script type = "text/javaScript"> var box = new Object (); // crear un tipo de referencia var box = "lee"; // El valor de tipo básico es la cadena box.age = 23; // Es extraño agregar atributos a los valores de tipo básico, porque solo los objetos pueden agregar atributos. alerta (box.age); // No es un tipo de referencia, y no se puede emitir; </script>
3. Operadores de JScript
Prioridad: se refiere al orden de operaciones de los operadores. En términos de Layman, es calcular qué parte de la operación primero.
Combinación: El orden de cálculo del mismo operador de prioridad, en términos de laicos, es desde qué dirección calcular, ya sea de izquierda a derecha o derecha a izquierda.
Conversión de tipo de datos
String () para tipo de cadena
Número () se convierte en tipo numérico
Booleano () al tipo booleano
parseInt : convierte una cadena en un entero. Comience analizando desde el comienzo de la cadena, deje de analizar en la primera posición no integral y devuelva todos los enteros leídos antes. Si la cadena no comienza con un entero, NAN se devolverá. Por ejemplo: el valor devuelto por ParseInt ("150 HI") es: 150, y el valor devuelto por ParseInt ("HI") es: Nan.
parseFloat : convierte una cadena en un número de punto flotante. Comience analizando desde el comienzo de la cadena, deje de analizar en la primera posición no integral y devuelva todos los enteros leídos antes. Si la cadena no comienza con un entero, NAN se devolverá. Por ejemplo: parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。
eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。4. Control de procesos JS
Para las declaraciones de control de procesos JS, aquí hay solo algunas difíciles de entender. No entraré en detalles sobre los demás. Un mapa mental se adjunta a continuación.
1. El para ... en la declaración ejecuta una o más declaraciones correspondientes a cada uno de un objeto, o cada elemento de una matriz.
para declaraciones (variable en [objeto | array])
parámetro:
variable : una opción requerida. Una variable que puede ser atributo de un objeto o cualquier elemento de una matriz.
object , array : opcional. El objeto o matriz para atravesarlo.
statement : opcional. Una o más declaraciones que se ejecutarán en relación con cada propiedad de un objeto o cada elemento de una matriz. Puede ser una declaración compuesta.
Aunque las declaraciones de control condicionales (como si las declaraciones) requieren el uso de bloques de código solo cuando se ejecutan múltiples declaraciones (comenzando en el aparato ortopédico izquierdo "{" y terminando en la abrazadera derecha "}"), la mejor práctica es usar siempre bloques de código.
if (args) alerta (args); // fácil de errores if (args) {alerta (args); // recomendado para usar}Mapa mental de la declaración de control de procesos JS
Función 5.JS
Una función es un bloque de código reutilizable que es impulsado por un evento o ejecutado cuando se llama.
Jscript admite dos funciones: una es una función dentro del idioma, y la otra es creada por sí misma.
Las funciones JavaScript no permiten parámetros (pero no se pueden omitir los parámetros que contienen parámetros), y los parámetros se pueden pasar a las funciones para su uso mediante funciones.
Para obtener más información sobre las funciones, visite otro artículo de mi artículo: Un resumen de JavaScript Learning (IV) Función Función Parte
Composición de objetos
Método - Función: Procedimiento, Propiedades dinámicas - Variables: Estado, estático
Finalmente, un mapa mental resumido por los adultos mayores: