我使用JSLint通过JavaScript,它返回了许多建议,以取代 ==(两个平等的标志)与 ===(三个平等的标志)当做一些事情,如比较idSele_UNVEHtype.value.length == 0在一个假设声明。
能否取代 = = = = = = =?
任何性能改进都将被欢迎,因为有许多比较运营商。
如果没有类型转换发生,会有超越 ==的性能收益吗?
我使用JSLint通过JavaScript,它返回了许多建议,以取代 ==(两个平等的标志)与 ===(三个平等的标志)当做一些事情,如比较idSele_UNVEHtype.value.length == 0在一个假设声明。
能否取代 = = = = = = =?
任何性能改进都将被欢迎,因为有许多比较运营商。
如果没有类型转换发生,会有超越 ==的性能收益吗?
当前回答
这是一个严格的检查测试。
这是一个很好的事情,特别是如果你在0和虚假和零之间检查。
例如,如果你有:
$a = 0;
然后:
$a==0;
$a==NULL;
$a==false;
所有返回是真实的,你可能不想这样做. 假设你有一个功能可以返回一个序列的 0th 指数或错误的故障. 如果你检查“=="错误,你可以得到一个混乱的结果。
所以,与上面的相同,但严格的测试:
$a = 0;
$a===0; // returns true
$a===NULL; // returns false
$a===false; // returns false
其他回答
JavaScript = = = = = = =
0==false // true
0===false // false, because they are of a different type
1=="1" // true, auto type coercion
1==="1" // false, because they are of a different type
在PHP和JavaScript中,它是一个严格的平等运营商,这意味着它将比较类型和值。
JavaScript 执行流图为严格的平等 / 比较 '==='
此分類上一篇
JavaScript 执行流图为非严格的平等/比较“==”
此分類上一篇
JavaScript 是虚拟的,就像 PHP 一样。
var x = "20";
var y =20;
if (x===y) // false
这将总是给你一个假的,因为尽管变量的值是相同的,数据类型是不一样的。
一个是,另一个是。
If(x==y)//true
但是,这只是检查内容是否相同,无论数据类型如何。
我不想说值是平等的,因为一个序列值不能与 int 值平等。
一个简单的例子是
2 == '2' -> true, values are SAME because of type conversion.
2 === '2' -> false, values are NOT SAME because of no type conversion.