今天仔細研究了Javascript中 == 和 === 的差別才知道它們會依變數型別有不同的比較方式:
非Object型別(String , Int…):
== 比 ‘value’
=== 比 ‘value’ & ‘type’
Example:
1 2 3 4 5 6 7 8 9
| var x = 5; var y = '5';
if (x == y) { console.log('same'); } else { console.log('not same'); }
|
1 2 3 4 5 6 7 8 9
| var x = 5; var y = '5';
if (x === y) { console.log('same'); } else { console.log('not same'); }
|
Object型別:
== 和 === 一樣都比較 “Reference”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| var obj1 = { name: "Asin", weather: "Sunny" }
var obj2 = { name: "Asin", weather: "Sunny" }
var obj3 = obj2;
var test1 = obj1 == obj2; var test2 = obj2 == obj3; var test3 = obj1 === obj2; var test4 = obj2 === obj3;
console.log("test1 : " + test1); console.log("test2 : " + test2); console.log("test3 : " + test3); console.log("test4 : " + test4);
|