大家好
在之前有提過JS的NaN 和 JS 強制轉型的狀況 所以會有 === 的使用時候
但在以下 請況
var x =NaN;
x === NaN; //false
JS有提供一個API isNaN 但是這個有點不太可靠(因為它也會進行隱含的強制轉型)
所以會有下列情況
isNaN("foo") //true
isNaN("undefined") //true
isNaN("{}") //true
isNaN({ valueOf: "foo" }) //true
但有個語法可被用來測試NaN 因為NaN是 JS當中 唯一被視為與自己不相等的值,所以可以測試是否不相等於自己
var a = NaN
a !== a; //true
var b = "foo"
b !== b; //false
var c = undefined;
c !== c; //false
var d = {};
d !==d //false
var e = { valueOf: "foo" };
e !== e; //false
你也可以寫成如下的工具函式
function isReallyNaN(x) {
return x != x;
}
以上 感謝收看
在之前有提過JS的NaN 和 JS 強制轉型的狀況 所以會有 === 的使用時候
但在以下 請況
var x =NaN;
x === NaN; //false
JS有提供一個API isNaN 但是這個有點不太可靠(因為它也會進行隱含的強制轉型)
所以會有下列情況
isNaN("foo") //true
isNaN("undefined") //true
isNaN("{}") //true
isNaN({ valueOf: "foo" }) //true
但有個語法可被用來測試NaN 因為NaN是 JS當中 唯一被視為與自己不相等的值,所以可以測試是否不相等於自己
var a = NaN
a !== a; //true
var b = "foo"
b !== b; //false
var c = undefined;
c !== c; //false
var d = {};
d !==d //false
var e = { valueOf: "foo" };
e !== e; //false
你也可以寫成如下的工具函式
function isReallyNaN(x) {
return x != x;
}
以上 感謝收看
留言