为什么在使用console.log时JS为什么看到[],而在使用===进行比较时却看不到

时间:2019-07-02 18:12:23

标签: javascript node.js appium codeceptjs

console.log(elementResult);在控制台中返回[]时。

比较if(elementResult === [])返回false

为什么?它应该返回true ...

async checkElement() {
   let elementResult = await doSomethingGetResult();
     console.log(elementResult);
     if (elementResult === []) {
      console.log("No element exists!");
      return false;
     } else {
     console.log("Element exists!");
     return true;
   }  
}

2 个答案:

答案 0 :(得分:1)

两个引用永远都不能为真,这里a[]是两个不同的引用

let a = []

console.log(a === a)
console.log(a === [])

答案 1 :(得分:1)

===在处理数组时比较实例。

[] === []总是返回false,因为当您[]时,您实际上是在创建一个新数组。

console.log([] === [])