前言:
此时看官们对“js一个等号和两个等号的区别”都比较注重,姐妹们都想要剖析一些“js一个等号和两个等号的区别”的相关资讯。那么小编同时在网摘上汇集了一些有关“js一个等号和两个等号的区别””的相关资讯,希望兄弟们能喜欢,兄弟们一起来学习一下吧!问题
JavaScript有两种视觉上相似但又非常不同的方法来测试相等性。您可以使用 == 或 === 测试相等性。
以下是不同之处:
三等号===
在JavaScript中使用===号时,我们正在测试严格(strict)的相等性。这意味着我们比较的类型和值必须相同。
看看下面几个要求严格平等的例子
在第一个例子中,我们将数字5与数字5进行比较。正如预期的那样,返回true。两者都是数字,两者都具有相同的值5。
5 === 5 // true
考虑到这一点,看看另外两个将返回true的示例:
'hello world' === 'hello world'// true (Both Strings, equal values)true === true// true (Both Booleans, equal values)
现在让我们看一些将返回false的示例,在这个例子中,我们将数字77与字符串值77进行比较。这意味着我们的操作数将具有相同的值,但是具有不同的类型,这将返回false。
77 === '77' // false (Number v. String)
所以三重(严格)平等的关键点是我们所比较的类型和值必须相同。
双等号==
在JavaScript中使用双等号时,我们正在测试松散的相等性,也执行类型强制。类型强制意味着仅在尝试将它们转换为公共类型之后才比较两个值。
一个例子将说明这一点。回想一下,当我们用严格的相等性测试以下内容时:
77 === '77' // false (Number v. String)
77并不严格等于'77',因为它们有不同的类型。但是,如果我们用宽松的平等来测试这些值......
77 == '77' // true
JavaScript实际上会尝试将我们的值转换为类似的类型。字符串值'77'可以很容易地转换为数字值77.由于77等于77,所以我们得到了true。
虚假的值
JavaScript中只有六个虚假值:
false — boolean false0 — number zero"" — empty stringnullundefinedNaN — Not A Number虚假值的比较
您可以将以下内容视为虚假值的“规则”。如果您经常使用JavaScript,这些是您最终应该记住的事情。
false, 0, and ""
当我们将前三个虚假值中的任何一个与松散的平等进行比较时,它们将始终相等!那是因为这些值都将强制转换为假布尔值。
false == 0 // true0 == "" // true"" == false // truenull 和 undefined
比较null和undefined时,它们只相当于它们自己和彼此:
null == null // trueundefined == undefined // truenull == undefined // true
如果您尝试将null与任何其他值进行比较,则它将返回false。
NaN
最后,NaN并不等同于任何东西。
NaN == null // falseNaN == undefined // falseNaN == NaN // false,自己甚至不是自己
最后总结:三等于优于双等于。只要有可能,您应该使用三等于测试相等性,通过测试类型和值,您可以确保始终执行真正的相等性测试。
标签: #js一个等号和两个等号的区别