嚴格比較適合在絕大多數情況下使用。對於所有非數字的值,嚴格比較就如字面:一個值只相等於自己。而數字則使用稍微不同的方式:第一種情況是浮點數 0 同時為正和負,在解決某些數學問題時,+0 和 -0 是不同的,但在大部分情況下我們不需要考慮這種情境,因此嚴格比較將他們視為相同的。第二種情況是非數字,NaN,用來表示某些定義不明確的數學問題的解, 例如:負無窮加正無窮,嚴格比較認為 NaN 不等於任何值,包含他本身。((x !== x)只有在 x 是 NaN 時會是 true。)
x = 5
console.log( x === 5);
console.log( x === "5");
y= NaN
console.log( y === NaN);
x = 5
console.log( x == 5);
console.log( x == "5");
console.log("a">"b");
console.log("a"<"b");
y= NaN
console.log( y === NaN);
console.log(Object.is( NaN, NaN));
console.log(Object.is( 0, -0));
console.log(Object.is( 3, '3'));