node - print instanceof javascript
Javascript! Instanceof Si la declaraciĆ³n (3)
Esta es una pregunta realmente básica solo para satisfacer mi curiosidad, pero ¿hay alguna manera de hacer algo como esto?
if(obj !instanceof Array) {
//The object is not an instance of Array
} else {
//The object is an instance of Array
}
La clave aquí es poder usar el NOT! frente a instancia. Por lo general, la forma en que tengo que configurar esto es así:
if(obj instanceof Array) {
//Do nothing here
} else {
//The object is not an instance of Array
//Perform actions!
}
Y es un poco molesto tener que crear una declaración else cuando simplemente quiero saber si el objeto es de un tipo específico.
Encerrar entre paréntesis y negar en el exterior.
if(!(obj instanceof Array)) {
//...
}
Es fácil olvidar los paréntesis (corchetes) para que pueda hacer un hábito de hacer:
if(obj instanceof Array === false) {
//The object is not an instance of Array
}
o
if(false === obj instanceof Array) {
//The object is not an instance of Array
}
Pruébalo here
if (!(obj instanceof Array)) {
// do something
}
Es la forma correcta de verificar esto, como ya han respondido otros. Las otras dos tácticas que se han sugerido no funcionarán y deberían entenderse ...
En el caso de !
operador sin corchetes.
if (!obj instanceof Array) {
// do something
}
En este caso, el orden de precedencia es importante ( https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence ). El !
operador precede al operador instanceof
. Entonces !obj
evaluado a false
primero (es equivalente a ! Boolean(obj)
); entonces estás probando si la false instanceof Array
, que obviamente es negativa.
En el caso de !
operador antes del operador instanceof
.
if (obj !instanceof Array) {
// do something
}
Este es un error de sintaxis Los operadores como !=
Son un solo operador, a diferencia de NO aplicado a un EQUAL. No existe un operador como !instanceof
del mismo modo que no hay operador !<
.