我正在使用JSLint来完成JavaScript,并且在执行诸如比较语句内部之类的事情时,它会返回许多建议来替换==(两个等号)===(三个等号).idSele_UNVEHtype.value.length == 0if
有没有性能优势,以代替==用===?
任何性能改进都会受到欢迎,因为存在许多比较运算符
如果没有进行类型转换,是否会有性能提升==?
javascript equality operators equality-operator identity-operator
以下显示"0"在Javascript 中为false:
>>> "0" == false
true
>>> false == "0"
true
Run Code Online (Sandbox Code Playgroud)
那么为什么以下打印"ha"?
>>> if ("0") console.log("ha")
ha
Run Code Online (Sandbox Code Playgroud) 给出以下代码:
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语句有意义,但我不明白为什么第一个语句会导致内部循环被评估.这里发生了什么?