Operator Instanceof在Console.log Concatenation中提供不同的结果

时间:2015-11-19 13:27:14

标签: javascript debugging console instanceof console.log

嗯,为了调试,我经常使用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?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

因为这段代码:

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

实际上将String(“结果”)“添加”到Array([]),等于一个字符串。见这个例子:

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

和String,绝对不是instanceof数组: - )