运算符 Instanceof 在 Console.log 串联中给出不同的结果

Operator Instanceof gives different results in Console.log Concatenation

嗯,对于调试,我经常使用 console.log 并且它会向 Web 控制台输出一条消息。但是我不知道为什么我用 instanceof 运算符连接得到不同的结果。

 console.log("Hello "+"Code!!"); //Prints `Hello Code!!` - Correct
 console.log("Hello ","Code!!"); //Prints `Hello Code!!` - Correct
 console.log("Hello "+"Code!! : "+Math.PI); //Prints `Hello Code!! : 3.141592653589793` - Correct
 console.log("Result ",[] instanceof Array); //Prints `Result true` - Correct

但是下一行给出的输出为 false。为什么不是 Result true

console.log("Result "+[] instanceof Array); //Prints `false` Why?

您需要将两个实例分开...

console.log("Result "+([] instanceof Array)); // Result true

因为这不是数组 --> "Result "+[]

当您使用逗号时,您将两者分开,这就是它起作用的原因。
当你使用 + 时,它将两者组合成一个字符串,然后检查它是否是一个 Array

因为这段代码:

console.log("Result "+[] instanceof Array); //Prints `false` Why?

实际上是"adds"一个String("Result ")到一个Array([]),相当于一个String。看这个例子:

console.log(typeof("simple string"+[])); // Will print "string"

和字符串,绝对不是 instanceof 数组 :-)