El uso indebido de JavaScript
En este capítulo vamos a discutir el uso de los errores de JavaScript.
error del operador asignación de la aplicación
En el programa JavaScript si se utiliza una sentencia condicional si el operador de asignación es el signo igual (=) generará un resultado de error, el enfoque correcto es utilizar una comparación de los dos signos de igual (==).
Si sentencia condicional devuelve falso (esperamos) porque x no es igual a 10:
Si sentencia condicional devuelve verdadero (no es que lo que esperábamos) se ejecute la sentencia debido a que las condiciones para la asignación x 10,10, es verdadera:
Si sentencia condicional devuelve falso (no era lo que esperábamos) se ejecute la sentencia debido a que las condiciones para la asignación x 0,0 es falsa:
Devuelve el valor de la asignación de variables. |
Comparación de los errores comunes
En comparación convencional, el tipo de datos se ignora, si la siguiente instrucción de condición devuelve true:
En funcionamiento comparación rigurosa, un cálculo de la identidad === operador, mientras que el valor de la expresión de la comprobación de tipos, las siguientes condiciones sentencia if devuelve false:
Este error se produce a menudo en la sentencia switch, cambie declaración calculada usando el operador de identidad (===) se compararon:
Los siguientes ejemplos se ejecutarán emergente de alerta:
Los siguientes ejemplos son incompatibles porque el tipo no realiza las ventanas emergentes de alerta:
Adición y Consideraciones sobre la conexión
Además de los dos números juntos.
La cadena de conexión para conectar los dos.
Además y JavaScript están conectados mediante el operador +.
A continuación, podemos ver dos números juntos y conectado a una cadena de números y distinción a modo de ejemplo:
Utilización de variables sumando los resultados son inconsistentes:
var y = 5;
var z = x + y; Resultados // z es 15
var x = 10;
var y = "5";
var z = x + y; Resultados // z es "105"
Trate »
Tenga en cuenta el uso de datos de punto flotante
JavaScript Todos los datos se basan en el tipo de 64 bits de datos de punto flotante (float) para almacenar.
Todos los lenguajes de programación, incluyendo JavaScript, a punto de exactitud de los datos flotantes son difíciles de determinar:
var y = 0,2;
var z = x + y Resultados // z es 0,3
si (z == 0.3) // Devuelve false
Trate »
Puedo solucionar este problema, se puede utilizar un número entero de multiplicación y división para resolver:
Ramas cadena JavaScript
Utilizamos saltos de línea para ejecutar sentencias de JavaScript en la cadena:
Sin embargo, en la cadena se está dando vuelta directamente carro para:
Podemos elegir la herramienta de desarrollo o pulse F12 para ver el mensaje de error:
saltos de línea de cadena necesitan utilizar una barra invertida (\), de la siguiente manera:
punto y coma mal
En el siguiente ejemplo, ya que el mal punto y coma, si no se ejecuta el bloque de instrucciones de código:
Precauciones volver declaración
JavaScript es el valor por defecto de forma automática termina en la última línea de código.
Los dos ejemplos siguientes devuelven el mismo resultado (un no es un punto y coma):
JavaScript también se puede utilizar para poner fin a una declaración de varias líneas.
Los siguientes ejemplos devuelven el mismo resultado:
Sin embargo, los siguientes ejemplos de resultados se devuelvenindefinido:
¿Por qué hay tal resultado? Debido a que en JavaScript, ejemplos de código coherente 4 y el siguiente código:
function myFunction(a) { var power = 10; return; // 分号结束,返回 undefined a * power; }
resolver
Si es una declaración incompleta, como sigue:
var
JavaScript intentará leer la segunda línea de la declaración:
power = 10;
Sin embargo, debido a esta declaración es completa:
return
JavaScript se apagará automáticamente la declaración:
return;
En JavaScript, el punto y coma es opcional.
Desde el retorno es una oración completa, se apagará instrucción de retorno JavaScript.
Nota: no romper la línea de la instrucción de retorno. |
Utilice un nombre de índice de matriz
Muchos lenguajes de programación permiten el uso del nombre que el índice de la matriz.
Para utilizar el nombre que el índice de la matriz se llama una matriz asociativa (o hash).
JavaScript no es compatible con el uso del nombre de las matrices de índice, solamente un índice numérico.
Ejemplos
persona [0] = "Juan" ;
persona [1] = "Doe" ;
persona [2] = 46;
var x = person.length; // Devuelve 3 Person.length
var y = persona [0]; // Persona [0] devuelve "John"
Trate »
En JavaScript, utilice el nombre del objeto como un índice.
Si utiliza el nombre como un índice cuando se accede a la matriz, JavaScript va a redefinir la matriz estándar de los objetos.
Después de realizar esta operación, ya no se utilizarán métodos y propiedades de la matriz, de lo contrario, se generará un error:
Ejemplos
persona [ "Nombre"] = " Juan";
persona [ "Apellido"] = " Doe";
persona [ "edad"] = 46 ;
var x = person.length; // devuelve 0 person.length
var y = persona [0]; // Persona [0] devuelve undefined
Trate »
Definir un elemento de matriz, y, finalmente, no se puede agregar una coma
Los errores se definen:
points = [40, 100, 1, 5, 25, 10,];
La definición correcta de la forma:
points = [40, 100, 1, 5, 25, 10];
Definir el objeto, y, finalmente, no se puede agregar una coma
Los errores se definen:
websites = {site:"本教程", url:"www.w3big.com", like:460,}
La definición correcta de la forma:
websites = {site:"本教程", url:"www.w3big.com", like:460}
Indefinido no nulo
En JavaScript, null para los objetos, no definido por variables, propiedades y métodos.
Los objetos se definen sólo es posible como nulo, de lo contrario no definido.
Si queremos poner a prueba si la presencia del objeto, cuando el objeto no está definido todavía generará un error.
El uso incorrecto:
if (myObj !== null && typeof myObj !== "undefined")
La forma correcta es que tenemos que utilizar typeof para detectar si un objeto se ha definido:
if (typeof myObj !== "undefined" && myObj !== null)
ámbito de bloque
JavaScript no crea un nuevo ámbito de aplicación en cada bloque de código, el alcance general de cada bloque de código son globales.
La siguiente variable de código que devuelve 10 en lugar de indefinido: