==与===的区别

来源:4-2 单页面应用Demo1

慕田峪9554188

2019-08-05 15:28

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

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

写回答 关注

2回答

  • Brian
    2019-08-06 12:25:52
    已采纳

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

    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") ,使用 ==


  • 天真无邪_2018
    2019-08-06 11:02:34

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


3小时速成 Vue2.x 核心技术

带你快速学习最流行的前端框架vue2.x的核心技术

82560 学习 · 487 问题

查看课程

相似问题