在Javascript(ES6)中,有四种测试平等性的方法,如下所示:
- 使用“==”运算符
- 使用“==”运算符
- SameValueZero:主要用于集合、映射和数组。
- SameValue:用于其他地方
现在,我们主要关心的是了解javascript提供的“==”和“==”运算符之间的区别,尽管它们看起来很相似,但它们非常不同。
“==”运算符: 在Javascript中,“==”运算符也称为松散相等运算符,主要用于比较两侧的两个值,然后返回true或false。此运算符仅在将两个值转换为公共类型(即 类型强制 . 注: 类型强制意味着只有在尝试将两个值转换为同一类型后,才会对它们进行比较。让我们看一下“==”运算符将返回true的所有值。
例子:
// '==' operator console.log(21 == 21); console.log(21 == '21' ); console.log( 'food is love' == 'food is love' ); console.log( true == 1); console.log( false == 0); console.log( null == undefined); |
输出: 在上面的代码中,当我们比较21和21时,javascript将把21转换成21的数值,因此我们得到了真值,当我们试图检查’true==1’时,类似的情况也会发生,在这种情况下,javascript基本上将1转换成真值,然后比较并返回布尔真值。(null==undefined)的情况很特殊,因为当我们比较这些值时,我们得到了真值,但不清楚为什么?。
在javascript中,有两种类型的值: 对还是错 符合事实的
- ‘0’
- ‘false’//用字符串包装的false。
- []
- {}
- 函数(){}
错误的
- “或”“//空字符串”
- 错误的
- 0
- 无效的
- 未定义
- NaN//not-a-number
所以null和undefined都是假值,它们代表一个“空”值或js中的undefined,因此与“==”运算符的比较返回true。
现在,让我们看看“==”运算符将返回false的所有值。 例子:
// '==' operator console.log(21 == 32); console.log(21 == '32' ); console.log( true == 0); console.log( null == false ); |
输出:
在上面的代码中,当我们将null与false进行比较时,我们得到false,因为null是一种原始数据类型,它永远不能等于布尔值,即使它们属于同一个falsy组。
“==”运算符: 也称为严格相等运算符,它比较值和类型,这就是名称“严格相等”的原因。 让我们来看一些代码,其中“==”运算符将返回true。 例子:
// '===' operator console.log( 'hello world' === 'hello world' ); console.log( true === true ); console.log(5 === 5); |
输出: 只需检查两侧的类型和值,然后打印出布尔值true或false。 例如,它将返回false。
// '===' operator console.log( true === 1); console.log( true === 'true' ); console.log(5 === '5' ); |
输出: