quitar error como array javascript ecmascript-6 ecmascript-2016

javascript - error - ES2015/2016 forma de ''typeof varName==='' undefined`?



undefined javascript (2)

Me estoy revolcando en el lujo ES2015 + con algunos proyectos en este momento y me pregunto si puedo deshacerme de la muleta tan odiada para ver si undefined en el nuevo país de las maravillas.

¿Existe una forma más corta pero exacta de typeof varName === ''undefined'' en ES2015 + ya?

Por supuesto, podría usar parámetros predeterminados, pero esto también se siente como una asignación innecesaria.

function coolFn(a = null){ if (a===null) console.log("no a supplied"); }


El único caso en typeof varName === ''undefined'' es útil typeof varName === ''undefined'' es cuando no sabe si se ha declarado la variable varName .

Y en mi opinión, si no sabe si sus variables están declaradas, su código tiene serios problemas.

En otros casos tienes mejores opciones:

  • varName === void 0

    Esto detectará si varName no está definido.

    void es un operador que recibe un argumento (puede usar lo que sea en lugar de 0 ) y devuelve undefined.

  • varName === undefined

    Esto debería detectar si varName no está definido.

    Sin embargo, tenga en cuenta que lo undefined global podría haberse sobrescrito (antes de ES5) o haberse sombreado con otro valor. Por lo tanto, prefiero void , que también es más corto.

  • varName == null

    Esto detectará si varName no está definido o es nulo.

  • !varName

    Esto detectará si varName es falso (indefinido, nulo, 0, cadena vacía, NaN, falso).


Simplemente verifique varName === undefined .

En los navegadores más antiguos era posible asignar un valor alternativo a la variable global undefined que causaba que la prueba fallara, pero en ES2015 + ahora eso es imposible.

Tenga en cuenta que no hay forma de distinguir pasar explícitamente undefined como parámetro de dejar el parámetro fuera por completo, excepto mirando los arguments.length .