La estructura léxica de un lenguaje de programación es un conjunto básico de reglas utilizadas para describir cómo escribe este idioma. Como base de la sintaxis, especifica cómo son los nombres de las variables, cómo escribir comentarios y cómo distinguir entre declaraciones. Esta sección utiliza un espacio muy corto para introducir la estructura léxica de JavaScript.
1. Conjunto de personajes
El programa JavaScript está escrito en conjuntos de caracteres Unicode, un superconjunto de ASCII y Latin-1 y admite casi todos los idiomas de la región. ECMAScript3 requiere que la implementación de JavaScript admita las versiones UNICODE2, 1 y posteriores, mientras que ECMAScript5 requiere que la implementación de JavaScript admite UNICODE3 y versiones posteriores.
i. distingue mayúsculas y minúsculas
JavaScript es un lenguaje sensible a los casos, es decir, palabras clave, variables, nombres de funciones y todos los caracteres de expresión deben estar constantemente cubiertos. Por ejemplo, la palabra clave mientras se debe escribir como mientras, y no se puede escribir como mientras o mientras.
Pero debe tenerse en cuenta que HTML no es sensible a los casos (aunque XHTML es diferente), y es fácil confundirse porque está estrechamente relacionado con JavaScript del cliente. Por ejemplo, en el evento de procesamiento establecido por HTML, el atributo OnClick se puede escribir como OnClick, pero en JavaScript, se puede escribir como OnClick.
II espacios, saltos de línea y controladores de formato
JavaScript ignora los espacios entre los tokens en el programa. En la mayoría de los casos, JavaScript también ignora los descansos de línea. Dado que los espacios y los descansos de línea se pueden usar a voluntad en el código, se puede usar una sangría ordenada y consistente al mismo tiempo para formar un estilo de codificación unificado, mejorando la legibilidad del código.
JavaScript además de identificar caracteres espaciales (/U0020). JavaScript también muestra los siguientes caracteres que indican espacios: caracteres de pestaña horizontal (/u0009), caracteres de pestaña vertical (/u000b), carácter de renovación de página (/u000c), carácter de espacio en blanco no intermedio (/u00a0), etiqueta endian (/uFeff) y caracteres en todas las categorías ZS en Unicode. JavaScript reconoce a los siguientes caracteres como caracteres finales: break de línea (/u000a), símbolo de retorno de carro (/u000d), separador de línea (/u2028) y separador de segmento (/u2029). El carácter de retorno del carro y el carácter de ruptura de línea se analizan en un carácter final de una sola línea.
El formato de Unicode controla los caracteres (clase CF), como "Marcas de escritura de derecha a izquierda" (/U200F) y "Marcas de escritura de izquierda a derecha" (/U200E), controla la visualización visual de texto. Esto es crucial para la visualización correcta de algunos textos que no son de inglés, que se pueden usar en comentarios de JavaScript, cantidades directas de cadena y cantidades directas de expresión regular, pero no se pueden usar en identificadores (por ejemplo, nombres variables), pero hay una excepción a cero conector de ancho (/u200D) y cero-width-no-connector (/ufeff) que puede aparecer en identificadores en los identificadores de manual. También se menciona anteriormente que el carácter de control de formato de marca de orden de bytes (/UFEFF) se trata como un espacio.
iii. secuencia de escape unicode
En algún hardware y software de la computadora, el conjunto completo de caracteres Unicode no se puede mostrar o ingresar. Para admitir programadores que utilizan tecnología antigua, JavaScript define una secuencia especial que utiliza 6 caracteres ASCII para representar cualquier código interno Unicode de 16 bits. Estas secuencias de escape Unicode están prefijadas por /U, seguidas de ratas hexadecimales (indicadas con números y mayúsculas y letras minúsculas AF). Esta escritura de escape Unicode se puede usar en cantidades directas de cadena de JavaScript, expresiones regulares e identificadores (excepto las palabras clave). Por ejemplo, el escape unicode del personaje é se escribe como /u00e9, y las siguientes dos cadenas JavaScript son exactamente las mismas.
"Café" === "CAF/U00E9" => Verdadero
Unicode Escape Writing puede aparecer en los comentarios, pero dado que JavaScript ignora los comentarios, se tratan como personajes ASCII en el contexto y no serán seguidos por personajes de Unicode.
Estandarización IIII
Unicode permite codificar el mismo carácter utilizando múltiples métodos. Por ejemplo, el personaje é puede usar el personaje Unicode /U00E9, o el carácter ASCII ordinario E puede usarse para seguir un símbolo de tono /U0301. En un editor de texto, los resultados que muestran estas dos codificaciones son exactamente los mismos, pero sus representaciones de codificación binaria son diferentes y no son iguales en las computadoras. El estándar Unicode define un formato de código preferido para caracteres índice y proporciona un método de procesamiento estandarizado para convertir el texto en un formato estándar adecuado para la comparación, y ya no estandarizará otras representaciones, cadenas o expresiones regulares.
2. Comentarios
JavaScript admite dos métodos de comentarios. JavaScript ignorará el texto después de "//" al final de la línea como comentarios.
Además, el texto entre / * y * / también se usa como comentarios. Este tipo de comentario se puede escribir a través de las líneas, pero no hay comentarios anidados.
// comentario de una sola línea
/*
*
*
*
*/
3. Cantidad directa
La llamada cantidad directa (literal) es el valor de datos utilizado directamente en el programa. La cantidad directa se enumera a continuación.
La copia del código es la siguiente:
12 // números
1.2 // decimal
"Hllo World" // texto de cadena
'Hola' // otra cadena
verdadero // booleano
falso // booleano
/Javascript /GI // Cantidad directa de expresión regular (utilizado como coincidencia de patrones)
nulo // vacío
El Capítulo 3 explicará en detalle la cantidad directa de números y cadenas. La cantidad directa de expresiones regulares se explicará en el Capítulo 10. Más expresiones de bienestar se pueden escribir como matrices u objetos directamente.
{x: 1, y: 2} // objeto
[1,2,3,4,5] // matriz
4. Identificadores y palabras reservadas
Un identificador es un nombre. En JavaScript, los identificadores se usan para nombrar variables y funciones, o para marcar la posición de salto en ciertas declaraciones de bucle en el código JavaScript. El identificador de JavaScript debe estar en letras. Comienza el subrayador o el signo de dólar. Los caracteres posteriores pueden ser letras. número. Signo subrayado o dólar (los números no pueden aparecer como iniciales, JavaScript puede distinguir fácilmente los identificadores de los números), y los siguientes son identificadores legales
La copia del código es la siguiente:
my_variable_name
B13
_ficticio
$ str
Para la portabilidad y la facilidad de escritura, generalmente usamos solo letras y números ASCII para escribir identificadores. Luego debe tenerse en cuenta que JavaScript permite letras y números en todo el conjunto de caracteres Unicode en el identificador (desde la tecnología hasta el ECMAScript permite que la clase MN, la clase MC y la clase P del mecanismo de caracteres Unicode aparezcan después del primer carácter del identificador). Por lo tanto, los programadores pueden usar lenguajes no ingleses o símbolos matemáticos para escribir identificadores.
La copia del código es la siguiente:
var sá = verdadero;
var π = 3.14;
JavaScript saca algunos identificadores como palabras clave, por lo que los nombres ya no pueden usar estas palabras clave como identificadores en el programa.
La copia del código es la siguiente:
romper
caso
atrapar
Continuar continuando
por defecto
eliminar eliminar
hacer
demás
Finalmente
para
función
si
en
instancia de
nuevo
Devolver
cambiar
Este
tirar
intentar
tipo de tono
varilla
vacío
Mientras
con
Javascript Palabras reservadas
exportación de la clase const enum
La exportación extiende la importación Super
Además, estas palabras clave son legales en JavaScript normal, pero son palabras reservadas en modo estricto
implementos dejar que el paquete de interfaz de rendimiento público privado
estático protegido
En el mismo modo estricto, los siguientes identificadores están estrictamente restringidos, pero no se pueden usar nombres de variables, nombres de parámetros y nombres de funciones.
argumentos evalúa
La implementación específica de JavaScript puede definir variables y funciones globales únicas. Cada servidor de entorno (cliente) de JavaScript (cliente) específico, etc., tiene su propia lista de atributos globales, que debe tenerse en cuenta. (Objeto de ventana para comprender la lista de variables y funciones globales definidas en el cliente JavaScript)
5. Semicolon opcional
Al igual que muchos lenguajes de programación, JavaScript usa semicolones (;) para separar las declaraciones. Esto es muy importante para mejorar la legibilidad y la ordenación del código. El final de una declaración sin un separador se convierte en el comienzo de la siguiente declaración, y viceversa.
En JavaScript, cada declaración ocupa una línea, y el punto y coma entre las declaraciones generalmente se puede omitir (el punto y coma antes de los aparatos de "}" al final del programa también se pueden omitir). Muchos programadores de JavaScript (incluidos los ejemplos de código de este libro) usan semicolones para marcar claramente el final de una declaración, incluso cuando los semicolones no son completamente necesarios. Otro estilo es omitir las semicolones cuando se pueden omitir, y solo usar semicolones cuando tienen que usarse. Independientemente del estilo de programación, hay varios detalles a los que prestar atención sobre JavaScript.
El siguiente código, se puede omitir el primer semicolon
a = 3;
b = 4;
Sin embargo, si se escribe en el siguiente formato, no se puede omitir el primer punto y coma.
a = 3; b = 4;
Cabe señalar que JavaScript no llena las semicolones en todas las nuevas líneas: JavaScript llenará las semicolones solo cuando el código no se analice normalmente sin semicolones. En otras palabras (similar a las dos excepciones en el siguiente código), si la declaración actual y los caracteres no espaciales posteriores no pueden analizarse en su conjunto, JavaScript llenará las semicolones al final de la declaración actual. Ver el siguiente código
var
a
=
3
console.log (a)
JavaScript lo analiza como
var a; a = 3; console.log (a);
JavaScript agrega un punto y coma a la primera línea. Sin un punto y coma, JavaScript no puede analizar var aa en el código. La segunda A se puede usar como una declaración "A;", pero JavaScript no llena el punto y coma al final de la segunda línea. Porque se puede analizar con el contenido de la tercera línea a "a = 3;" .
Las reglas de separación de algunas declaraciones conducirán a algunas situaciones inesperadas. Este código de ruptura se divide en dos líneas, que parece ser dos declaraciones independientes.
var y = x + f
(A+B) .ToString ()
Los soportes en la segunda línea forman una llamada de función con la F en la primera línea. JavaScript considerará este código como
var y = x+f (a+b) .ToString ();
Obviamente, la intención original del código no es así. Para permitir que el código anterior se analice en dos declaraciones diferentes, debe completar manualmente el punto y coma de pantalla del comportamiento.
Generally speaking, if a statement starts with ( [ / + -, it is very likely to be parsed with the previous statement. Statements starting with / + - are not very common, but statements starting with ( [ are very common. At least in some JavaScript encoding styles. Some programmers like to conservatively add a semicolon to the statement, so that even if the previous statement is edited and the semicolon is deleted by mistake, the current statement will still be parsed correctamente;
Si la declaración actual y la siguiente declaración de línea no se pueden fusionar y analizar. JavaScript llena el punto y coma después de la primera fila, que es una regla común, pero tiene dos columnas afuera. La primera excepción involucra el returnm, Birak, continúa la declaración si estas tres palabras clave son seguidas por un descanso de línea. JavaScript completará las semicolones en la nueva línea. Por ejemplo
Por ejemplo
Devolver
verdadero;
Y JavaScript analizado en
regreso; ture;
Y el significado original del código es
devolver la verdad;
En otras palabras, no puede haber descansos de línea entre las expresiones posteriores con retorno, ruptura y contuina. Si se agrega un descanso de línea, el programa solo puede informar un error en circunstancias especiales. Además, la depuración del programa es inconveniente.
El segundo ejemplo es cuando se trata del operador ++, estos símbolos de expresión pueden representar el prefijo y el sufijo de la expresión del identificador. Si es seguido por la expresión, si se usa como la expresión de sufijo. La expresión y la expresión deben considerarse como una línea. De lo contrario, el punto y coma se llenará al final de la línea.
La copia del código es la siguiente:
incógnita
++
yy
El código anterior se analiza como
La copia del código es la siguiente:
incógnita;
++ Y