相关疑难解决方法(0)

为什么if("string")将"string"评估为true,但if("string"== true)不是?

给出以下代码:

if ("string") {
    console.log('true!');
}
//logs "true" to the console
if ("string"==true) {
    console.log('true!');
}
//doesn't log anything
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我以为"string"是被转换成一个数字,就像布尔一样.因此true变得1"string"NaN.第二个if语句有意义,但我不明白为什么第一个语句会导致内部循环被评估.这里发生了什么?

javascript

35
推荐指数
2
解决办法
2万
查看次数

标签 统计

javascript ×1