龙空技术网

在3分钟内学习JavaScript中的等号

技术大蜜儿 188

前言:

此时看官们对“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 // true
null 和 undefined

比较null和undefined时,它们只相当于它们自己和彼此:

null == null // trueundefined == undefined // truenull == undefined // true

如果您尝试将null与任何其他值进行比较,则它将返回false。

NaN

最后,NaN并不等同于任何东西。

NaN == null // falseNaN == undefined // falseNaN == NaN // false,自己甚至不是自己

最后总结:三等于优于双等于。只要有可能,您应该使用三等于测试相等性,通过测试类型和值,您可以确保始终执行真正的相等性测试。

标签: #js一个等号和两个等号的区别