运算符 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
数组 :-)
嗯,对于调试,我经常使用 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
数组 :-)