JavaScript ==和===运算符的区别

JavaScript =====运算符的区别

JavaScript广泛用于创建交互式网页。它有许多框架,如React JS,Angular JS,Node JS等。与其他编程语言一样,JavaScript也提供了算术、关系、比较等运算符。等值运算符"=="是一种比较运算符,用于检查左边和右边是否相等。这个运算符在所有其他编程语言中都存在,但在JavaScript中稍有不同。原因是JavaScript是一种弱类型语言,而其他语言都是强类型语言。由于JavaScript是弱类型的,它不会比较给定的两个变量的类型。这可以通过强制转换的概念来解释。

JavaScript中的强制转换

让我们假设我们需要将取值分别为2和3的两个变量”x”和”y”相加。我们将得到5作为输出。但如果我们用一个字符串来加”x”呢?假设我们将变量”x”与一个空字符串” “相加。

为了执行操作,两个值必须是相同的类型。因此,当我们运行它时,JavaScript将两个值都视为字符串并将它们连接在一起。这种考虑取决于所使用的运算符的类型。

如果我们对两个数字进行减法运算,其中一个是字符串类型,那么它们不会连接在一起,而是相减。因此,我们可以说JavaScript根据正在执行的操作隐式地转换数据类型。这就是所谓的强制转换。

现在,让我们将这个概念应用到双等号(==)运算符上。考虑两个变量”x”和”y”,它们的值都是3,但”x”变量中的”3″是一个字符串类型。

x = "3"
y = 3

假设我们比较 “x” 和 “y”,即 "x == y"。由于一个是字符串类型,另一个是数字类型,我们预期得到 false 作为输出,就像其他编程语言一样。但是在JavaScript中,我们得到的是”True”。

这是因为JavaScript中的双等号(==)不考虑类型,而是使用转换的概念将一个数据类型转换为另一个数据类型,并执行操作。但是隐式转换数据类型并不总是明智的选择。

为了解决这个问题,我们使用三等号(===)替代双等号。三等号运算符是严格类型的,它考虑变量的数据类型来进行比较。

如果我们使用三等号来比较"x === y",那么我们将得到 “False” 的结果。建议始终使用三等号运算符,因为它会给出正确的输出结果。

现在我们来看几个示例来更好地理解这个概念-

示例1

如果我们比较两个相同的字符串,双等号和三等号都会给出true作为输出。

str1 = "example"
str2 = "example"
str1 == str2    // True
str1 === str2       // True

示例2

如果我们将字符串和数字进行比较,双等号和三等号都会返回false。

str1 = "example"
str2 = 3 
str1 == str2    // False
str1 === str2       // False

示例3

如果我们比较两个相同的数字,其中一个是字符串类型,那么双等号(==)会返回真,而三等号(===)会返回假。

str1 = "7"
str2 = 7
str1 == str2   // True
str1 === str2   // False

示例4

让我们来看两个变量 var1var2 其中前者将字符串”8″存储,而后者的值为7。如果我们将这两个变量相减,并比较是否等于1,双等号和三等号都会输出True。当我们进行减法运算时,JavaScript会隐式将字符串值转换为数字类型。因此,结果的类型变为数值类型,并且都输出True。

var1 = "8"
var2 = 7
y = var1 – var2
y==1    // True
y === 1     // True

示例5

如果我们将零与false进行比较,双等号(==)返回true,而三等号(===)返回false作为输出结果。

0 == False      // True
0 === False     // False

这是因为”0″和False都具有相同的值,即false。因此,双等号会隐式地转换其中之一。而三等号中,”0″是数字类型,而False是布尔类型。因此,它的输出为false。

在JavaScript中,双等号(==)和三等号(===)的区别

下表重点介绍了JavaScript中双等号()和三等号(=)的主要区别:

特点 双等号(== 三等号(===
函数 双等号(==)只比较两个变量的值,而不比较它们的数据类型。 三等号(===)会检查两个变量的值和数据类型。
强制转换 它遵循强制转换的概念。 它不遵循强制转换的概念。
类型转换 它会隐式地转换类型以进行操作。 它不会转换它们原始的数据类型。
弱类型或严格类型 它是弱类型的。 它是严格类型的。

结论

双等号和三等号是JavaScript中的比较运算符,用于比较给定的两个变量或值是否相等。双等号(==)运算符是宽松类型的,只比较值。相反,三等号(===)运算符是严格类型的,除了比较值外,还考虑数据类型。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程