我使用JSLint通过JavaScript,它返回了许多建议,以取代 ==(两个平等的标志)与 ===(三个平等的标志)当做一些事情,如比较idSele_UNVEHtype.value.length == 0在一个假设声明。
能否取代 = = = = = = =?
任何性能改进都将被欢迎,因为有许多比较运营商。
如果没有类型转换发生,会有超越 ==的性能收益吗?
我使用JSLint通过JavaScript,它返回了许多建议,以取代 ==(两个平等的标志)与 ===(三个平等的标志)当做一些事情,如比较idSele_UNVEHtype.value.length == 0在一个假设声明。
能否取代 = = = = = = =?
任何性能改进都将被欢迎,因为有许多比较运营商。
如果没有类型转换发生,会有超越 ==的性能收益吗?
当前回答
它建议取代 ==与 ===的原因是 ===操作员比 ==更可靠。在我们的背景下可靠的手段 ===也去类型检查. 考虑到最好的编程做法,我们应该总是选择更可靠的功能比不可靠的一个。 再一次,每当我们想到的正是相同的操作员大部分时间,我们是默认考虑类型应该是相同的。
其他回答
平等比较:
运营商 =
回归是真实的,当两个操作员是平等的时,操作员在比较之前转换为相同的类型。
>>> 1 == 1
true
>>> 1 == 2
false
>>> 1 == '1'
true
平等与类型比较:
主持人 ===
回来是真实的,如果两个操作员是相同的和类型。 一般情况下,如果你比较这个方式,它是更好的和更安全的,因为没有背后的场景类型转换。
>>> 1 === '1'
false
>>> 1 === 1
true
在JavaScript中,它具有相同的值和类型。
例如,
4 == "4" // will return true
但
4 === "4" // will return false
JavaScript 执行流图为严格的平等 / 比较 '==='
此分類上一篇
JavaScript 执行流图为非严格的平等/比较“==”
此分類上一篇
无,无,无,无,无,无。
var a;
var b = null;
在这里, a 和 b 没有值. 因为, 0 是虚假的和 '' 都是值. 其中的一件常见的是,它们都是虚假的值,这意味着它们都满足虚假的条件。
因此, 0 虚假和 '' 一起形成一个子组. 另一方面, null 和 undefined 形成第二个子组. 查看下图中的比较. null 和 undefined 将是相同的. 其他 3 将是相同的。
此分類上一篇
這是相同的任何物體(如 {}, arrys,等),不空的線 & Boolean 真實是所有真實的條件. 但,他們都不是平等。
javascript 是一个弱点编写的语言,即没有任何数据类型,如在 C、c++ 例如 int、boolean、 float 等,因此一个变量可以持有任何类型的值,这就是为什么这些特殊的比较操作员在那里。
艾格
var i = 20;var j = "20";
如果我们应用比较运营商,这些变量结果将是
i==j //result is true
或
j != i//result is false
为此,我们需要一个特殊的比较运营商,检查值以及变量的数据类型。
如果我们做
i===j //result is false