English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScript es uno de los lenguajes de programación más populares en la industria actual. Si quieres aprender este lenguaje, evita los siguientes errores.
Si no prestamos atención a la utilización del operador de asignación (=) en lugar del operador de comparación (==) en la declaración if, el programa JavaScript puede producir resultados inesperados.
Si num no es igual a20, esta declaración if devuelve false:
var num = 0; if (num == 20)测试看看‹/›
Esta declaración if devuelve true porque20 es true:
var num = 0; if (num = 20)测试看看‹/›
La asignación siempre devuelve el valor asignado.
Cuando las personas comienzan a usar JavaScript, este puede ser el error más común.
En la comparación común, el tipo de datos no importa. Si la declaración if devuelve true:
var a = 20; var b = "20"; if (a == b)测试看看‹/›
En la comparación estricta, el tipo de datos es realmente importante. Esta declaración if devuelve false:
var a = 20; var b = "20"; if (a === b)测试看看‹/›
La diferencia entre (a == b) y (a === b) es:
== si a es igual a b, devuelve true
=== si a es igual a b y pertenecen adel mismo tiposi es así, devuelve true
Por lo general, siempre debe usar ===, también conocido como operador de igualdad estricta o operador de identidad.
Como se mencionó en los capítulos anteriores,+operadores se utilizan para adición y concatenación.
Ademáses sobre agregarnúmeros.
concatenaciónes sobre agregarLa adición de cadenas.
Por lo tanto, sumar números como números y sumar números como cadenas produce resultados diferentes:
var a = 10; var b = 5; var c = a + b; // c = 15 var a = 10; var b = "5"; var c = a + b; // c = "105"测试看看‹/›
Todos los números en JavaScript se almacenan como64números de coma flotante (Floats).
Todos los lenguajes de programación (incluido JavaScript) tienen dificultades con valores de punto flotante precisos:
var a = 0.1; var b = 0.2; var c = a + b; // El resultado de c no será 0.3测试看看‹/›
Para resolver el problema mencionado anteriormente, ayuda a multiplicar y dividir:
var c = (a * 10 + b * 10) / 10; // c = 0.3测试看看‹/›
JavaScript le permitirá dividir una declaración en dos líneas:
var str = "w3caja de código Tutorial";测试看看‹/›
Pero, interrumpir una declaración en medio de la cadena no tendrá efecto:
var str = "w3caja de código Tutorial";测试看看‹/›
Si es necesario interrumpir una declaración en la cadena de caracteres, debe usar el "backslash" (carácter de escape):
var str = "w3caja de código \ Tutorial";测试看看‹/›
Otra solución es usarlitotipo(comillas invertidas ``)cadena de caracteres. Esto elimina la necesidad de escapar cadenas de caracteres largas:
var str = `Contaminación del aire es la introducción de sustancias químicas al atmósfera. Daña el equilibrio ambiental y causa varias enfermedades.`;测试看看‹/›
Debido a la colocación incorrecta del punto y coma, se ejecutará el siguiente código independientemente del valor de num:
if (num === 45); { // bloque de código }测试看看‹/›
Los comas al final de las definiciones de objetos y arreglos en ECMAScript 5es válido en el medio.
let fruits = ["Apple", "Mango", "Banana", "Orange",];//arreglo let user = {firstName:"Vishal", lastName:"Choudhary", age:22,};//objeto
Sin embargo, agregar una coma al final del array, Internet Explorer 8将会崩溃。
JSON不允许尾随逗号。
JavaScript不会为每个代码块创建新的作用域。
在许多编程语言中都适用,但在JavaScript中则不适用。
for (var i = 0; i < 10; i++) { // some code } document.write(i); // 这个输出会是什么?测试看看‹/›
使用let关键字为每个代码块创建一个新范围:
for (let i = 0; i < 10; i++) { // some code } document.write(i); // 这个输出会是什么?测试看看‹/›
undefined值指示尚未为变量分配值,或者根本没有声明变量。
null值表示故意不存在任何对象值。
这使得测试对象是否为空变得有点困难。
可以通过测试类型是否undefined,来测试对象是否存在:
if (typeof myObj === "undefined")测试看看‹/›
但是您无法测试对象是否为null,因为如果对象undefined,这将抛出错误:
if (myObj === null)测试看看‹/›
要解决这个问题,必须测试一个对象是否不是undefined,并且不是null:
if (typeof myObj !== "undefined" && myObj !== null)测试看看‹/›