JavaScript中"=="和"==="的区别

      在JavaScript中“==”和“===”分别有什么作用?

      “==”是等同,相等;而“===”是恒等于。

      “==”两边值类型不相等时,需要先进行类型转换,然后进行比较。

       “===”,不作类型比较,类型不同一定不同。

       怎样判断“===”什么时候为true,也就是什么时候恒等于。

  1. 类型不同,不相等。
  2. 如果两个值都是数值,并且是同一个值,相等。
  3. 如果两个值都是字符串,每个位置的字符都一样,相等。
  4. 如果两个值都是true或者false,相等。
  5. 如果两个值都引用同一个对象或函数,相等。
  6. 如果两个值都是null,或者都是undefined,相等。

    怎样判断“==”什么时候为true?

  1. 如果两个值的类型相等,则根据“===”的条件来判断。
  2. 如果两个值的类型不相等,他们也可能相等:   

               a:如果一个是null,一个是undefined,相等;

               b:如果一个是字符串,一个是数值,把他的字符串转换为数组后在比较。

               c:如果任一值是true,把它转换为1在比较;如果任一值是false,把它转换为0再比较。

               d:如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。(使用toString()和valueOf()转换)

var a = 1;
var b = true;
console.log(a===b);
console.log(a==b);
var c = null instanceof Object;
var d = 0;
console.log(c===d);
console.log(c==d);

猜你喜欢

转载自blog.csdn.net/The_upside_of_down/article/details/82860298
今日推荐