javascript - solucionar - void(0) trackid=sp-006
JavaScript `undefined` vs` void 0` (4)
¿Cuál es exactamente la diferencia entre undefined
y un void 0
?
¿Cuál es el preferido y por qué?
JS es muy flojo en la sintaxis, los paréntesis aquí son opcionales, void 0
y void(0)
son equivalentes.
Para la segunda pregunta, debe usar undefined
directamente mientras evita una evaluación innecesaria de operandos para recuperar el mismo valor undefined
.
Más información en la referencia: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void
La diferencia es que algunos navegadores le permiten sobrescribir el valor de undefined
. Sin embargo, void(anything)
siempre devuelve real undefined
.
undefined = 1;
console.log(!!undefined); //true
console.log(!!void(0)); //false
Utilice undefined
. Es más conocido que el void(0)
.
undefined
tiene una semántica variable normal que ni siquiera el modo estricto puede corregir y requiere una búsqueda en tiempo de ejecución. Puede estar sombreado como cualquier otra variable, y la variable global predeterminada undefined
no es de solo lectura en ES3.
void 0
es efectivamente una constante a prueba de balas de tiempo de compilación para undefined
sin requisitos de búsqueda. Es como escribir null
o true
, en lugar de buscar un valor variable. Funciona fuera de la caja sin ningún argumento de seguridad y es más corto de escribir. Es mejor en todos los sentidos.