给定以下代码:
if ("string") {
console.log('true!');
}
//logs "true" to the console
if ("string"==true) {
console.log('true!');
}
//doesn't log anything
为什么会发生这种情况?我以为“string”被转换成数字,就像布尔值一样。所以true变成了1,而“string”变成了NaN。第二个if语句是有道理的,但我不明白为什么第一个语句会导致内部循环被评估。这里到底发生了什么?