== 与 ===

两个等号==

较宽松的比较

null == undefined; // => true
1 == '1'; // => true
true == 0;   // => false
false == 1;  // => false
true == 1;   // => true
false == 0;  // => true
true == '1'; // => true
false == '0';// => true
var d = 1;
d == NaN // => false
NaN == NaN  // => false

//只要一边是NaN,则都为false
var a = [1,2,3];

var b = [1,2,3];

var c = { x: 1, y: 2 };

var d = { x: 1, y: 2 };

var dd = d;

var e = "text";

var f = "te" + "xt";

a == b // =>false 
c == d // =>false 
dd == d // =>true
e == f // =>true

三个等号===

较严格的比较

true === '1'; // => false
null === null; // => true
undefined === undefined; // => true
null === undefined; // =>false
true === true;   // =>true
false === false; // =>true
true === 1;      // =>false
true === '1';    // =>false
false === 0;     // =>false
false === '0';   // =>false

参考:

https://www.cnblogs.com/yuxingyoucan/p/6048428.html