`
jarmine
  • 浏览: 510 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaScript 三个等号(===)比较后为true的条件

阅读更多
JavaScript 三个等号(===)比较后为true,必须满足以下四个条件:

1、两个的数据类型必须一样;
2、两个数据的值必须一样;
3、两个都不能是NaN;
4、两个都不能是对象(除非两个都是null);


说明:① JS是引用比较,而非值比较;
           ② === 比较时,两边的数据不做任何的类型转换。


例子:

1、数据类型不一样:
var a = '1';
var b = 1;
var c = new String('1');

a === b;//结果是false
a === c;//结果是false,同时c是一个对象


2、值不一样结果肯定是false,代码就不用写了吧。


3、NaN的情况:
NaN === NaN;//结果是false
NaN === 0;//结果是false


4、不能是对象的情况:
var a = 1;
var b = new Number(1);
var c = new Number(1);
var d = {s: 1, t: 2};
var e = {s: 1, t: 2};
var f = [1, 2, 3];
var g = [1, 2, 3];

a === b;//结果是false
c === b;//结果是false
d === e;//结果是false,因为它们都是对象,就算它们属性及其值都一样
f === g;//结果是false,数组也是对象


5、容易出错的比较:
null === null; //结果是true,虽然null的数据类型是对象,这是一个特例
undefined === undefined; //结果是true,因为undefined是JS的全局属性
Infinity === Infinity; //结果是true,Infinity也是JS的全局属性
null === undefined; //结果是false,null是对象类型的,undefined是全局属性
分享到:
评论

相关推荐

    JavaScript中三个等号和两个等号的区别(== 和 ===)浅析

    当使用“==”运算符比较两个不同类型的值时,JavaScript会尝试进行类型转换,以便将一个值转换为另一个值的类型后再进行比较。如果转换后的值相等,则返回true;如果不等,则返回false。类型转换的规则较为复杂,...

    javascript等号运算符使用详解.docx

    * 三个等号(===)运算符:比较两个操作数是否完全相等,不进行隐式类型转换。 下面是它们的比较规则: * 两个等号(==)运算符: + 如果两个操作数是值类型,那么两个操作数必需完全相等才会相等。 + 如果两个...

    细数JavaScript 一个等号,两个等号,三个等号的区别

    0 == "" // true,因为JavaScript将两者都转换为空字符串后进行比较 1 == "1" // true,数字1被转换为字符串"1"后与"1"相等 ``` - 这种比较可能会导致意外的结果,因此在编写严谨的代码时,通常会避免使用双等号...

    javascript中的=等号个数问题两个跟三个有什么区别

    三个等号“===”用于比较操作时,被称为严格相等操作符,它不仅比较值的相等性,还比较值的类型。如果两个操作数的类型不同,即使它们的值看起来是相等的,结果也会返回假(false)。例如,0===false在JavaScript中...

    JavaScript中三个等号和两个等号你了解多少

    在JavaScript中,`==` 和 `===` 是两种不同的比较操作符,它们在进行值比较时遵循不同的规则,理解这两个操作符的区别对于编写高质量的JavaScript代码至关重要。 `===`,称为严格相等比较,它在比较两个值时不仅...

    浅析Javascript中双等号(==)隐性转换机制

    例如,虽然字面量0、空字符串""、false在使用双等号进行比较时均被转换为数字0,但它们与空数组[]比较时会得到true,因为数组转换为数字时,JavaScript会返回数组的长度。 总结来说,双等号(==)的隐性转换机制是...

    详解JavaScript中双等号引起的隐性类型转换

    举个简单的例子,双等号不是全等号,全等号是“===”三个等号,语句”1″==1,那么一般情况下是前面的字符串”1“转换为数字1,然后进行比较。通过这个例子应该了解了什么是隐性类型的转换了吧! 隐性类型转换步骤 ...

    javascript等号运算符使用详解

    等号运算符由双等号(==)表示,在JavaScript中,当两个运算数在比较时值相等,它返回true。但是,JavaScript的等号运算符在比较时会涉及数据类型转换的特殊规则,因此即使是不同类型的数据,它们在某些情况下也可能...

    浅析Javascript中“==”与“===”的区别

    JavaScript中的等号运算符分为双等号“==”和三等号“===”,这两个运算符都是用来判断两边表达式的值是否相等,但是它们在比较值时的行为有所不同。 首先,双等号“==”被称为抽象相等比较符。当使用双等号进行...

    浅谈JavaScript中等号、双等号、 三等号的区别

    在JavaScript中,等号(=)、双等号(==)和三等号(===)是三个不同的比较操作符,它们在进行值比较时遵循各自的规则,对于编程逻辑有着深远的影响。 1. **单等号(=)**: 单等号是赋值操作符,用于将右边的值赋...

    Javascript中的陷阱大集合【译】

    在JavaScript中,双等号`==`操作符在比较两个值时会进行类型转换,这意味着即使两边的数据类型不同,也会尝试将它们转换为相同类型再进行比较。例如: ```javascript "1" == 1 // true ``` 在这个例子中,字符串`...

    判断JavaScript中的两个变量是否相等的操作符

    可能有些同学看到这个标题就会产生疑惑,为什么我们要判断JavaScript中的两个变量是否相等,JavaScript不是已经提供了双等号“==”以及三等号“===”给我们使用了吗? 其实,JavaScript虽然给我们提供了相等运算符,...

    JavaScript 应用技巧集合[推荐]

    然而,在进行严格相等比较时(使用三个等号===),这些隐式转换不会发生,因此0 !== false。如果需要将非Boolean值转换为Boolean,可以使用双重否定操作符(!!),例如 !!0 === false。 2. 函数参数默认值的技巧:...

    JavaScript 80道面试题和答案.docx

    在比较 `null` 和 `undefined` 时,使用双等号 `==` 会得到 `true`,因为它们被视为相等,但使用三等号 `===` 表示严格相等时,结果为 `false`。这是因为 `null` 和 `undefined` 是两个不同的值。 ```javascript ...

Global site tag (gtag.js) - Google Analytics