为什么这些javascript表达式意外地工作

时间:2017-06-05 09:00:38

标签: javascript syntax

有一些javascript语法,我不明白它们的工作原理。

1

({} === {}) // returns false 

2

function foo() {
       return
       {
          foo: 'bar'
       }
    }

    function bar() {
       return {
          foo: 'bar'
       }
    }

(typeof foo() === typeof bar()) //return false again

3

([1,2,3] == [1,2,3]); //very interesting false again

1 个答案:

答案 0 :(得分:1)

在所有这些情况下,对比较运算符左侧和右侧的对象执行参考检查。这返回false,因为虽然它们看起来相同,但它们实际上是不同的实例。