English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de JavaScript

Objeto de JavaScript

Función de JavaScript

DOM HTML JS

BOM del navegador JS

Tutorial básico de AJAX

Manual de referencia de JavaScript

Errores comunes de JavaScript

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.

Uso inesperado del operador de asignación

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.

Usar "==" en lugar de "==="

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.

confusos sumas y concatenaciones

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"
测试看看‹/›

uso incorrecto de float

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
测试看看‹/›

Salto de línea en cadena de JavaScript

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.`;
测试看看‹/›

punto y coma en el lugar incorrecto

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  
}
测试看看‹/›

definiciones que terminan con coma

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);   // 这个输出会是什么?
测试看看‹/›

区别null和undefined

undefined值指示尚未为变量分配值,或者根本没有声明变量。

null值表示故意不存在任何对象值。

这使得测试对象是否为空变得有点困难。

可以通过测试类型是否undefined,来测试对象是否存在:

if (typeof myObj === "undefined")
测试看看‹/›

    但是您无法测试对象是否为null,因为如果对象undefined,这将抛出错误:

if (myObj === null)
测试看看‹/›

要解决这个问题,必须测试一个对象是否不是undefined,并且不是null:

if (typeof myObj !== "undefined" && myObj !== null)
测试看看‹/›