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 de0
) 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, prefierovoid
, 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
.