为了账号安全,请及时绑定邮箱和手机立即绑定

==与===的区别

麻烦请问下,我在add方法if判断条件中,如果写的是(this.current == ''),数组的第一个元素不能被添加到target数组中,但是判断条件改成(this.current === '')就可以了。为什么会有这个问题呢?

我现在理解的,==是简单的做比较,并且在比较的时候会做字符转换,===是做强比较,一定要全等才符合条件。

正在回答

2 回答

同学,你的理解是正确的,三个等号就是强等,这个强是多了一层的判断:

var num = 0;
var obj = new String("0");
var str = "0";
var b = false;

console.log(num === num); // true
console.log(obj === obj); // true
console.log(str === str); // true
console.log(num === obj); // false
console.log(num === str); // false
console.log(obj === str); // false
console.log(null === undefined); // false
console.log(obj === null); // false
console.log(obj === undefined); // false

一个值只与自身全等。

一般而言,根据 ECMAScript 规范,所有的对象都与 undefined 和 null 不相等。


这一块属于Javascript基础,可以参考:JavaScript 中的相等性判断

  • 严格相等 ("triple equals" 或 "identity"),使用 === ,

  • 宽松相等 ("double equals") ,使用 ==


1 回复 有任何疑惑可以回复我~

==是等于,===是恒等于


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

==与===的区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信