JavaScript數(shù)字-NaN
在JavaScript中,NaN表示Not-a-Number,表示不是數(shù)字。愛(ài)掏網(wǎng) - it200.com所以當(dāng)你試圖使用非數(shù)字值執(zhí)行算術(shù)運(yùn)算時(shí),例如將字符串與數(shù)字相加,這個(gè)值就會(huì)出現(xiàn)。愛(ài)掏網(wǎng) - it200.comNaN是一個(gè)特殊的數(shù)字類型,具有以下特征:
- NaN不等于任何值,包括NaN本身
- NaN與任何值(除了它本身)進(jìn)行任何算術(shù)運(yùn)算都將導(dǎo)致NaN
- NaN是數(shù)字類型
下面我們將分別用代碼來(lái)展示這些特征。愛(ài)掏網(wǎng) - it200.com
通常情況下,我們可以用相等運(yùn)算符()和嚴(yán)格相等運(yùn)算符(=)來(lái)比較兩個(gè)值是否相等。愛(ài)掏網(wǎng) - it200.com但是,NaN與任何值(包括NaN本身)進(jìn)行比較都會(huì)返回false。愛(ài)掏網(wǎng) - it200.com
console.log( NaN == NaN ); // false
console.log( NaN === NaN ); // false
NaN與任何值進(jìn)行算術(shù)運(yùn)算都將導(dǎo)致NaN
例如,如果嘗試將字符串與數(shù)字相加,則會(huì)得到NaN:
let num = 100;
let str = 'Hello World';
console.log(num + str); // "100Hello World"
對(duì)于字符串實(shí)際上無(wú)法進(jìn)行算術(shù)運(yùn)算,所以當(dāng)我們運(yùn)行示例代碼時(shí),會(huì)得到一個(gè)字符串”100Hello World”,而不是想象中的個(gè)數(shù)字100。愛(ài)掏網(wǎng) - it200.com
同樣地,NaN與任何值進(jìn)行任何算術(shù)運(yùn)算都將導(dǎo)致NaN:
console.log( NaN + 1 ); // NaN
console.log( NaN - 1 ); // NaN
console.log( NaN * 1 ); // NaN
console.log( NaN / 1 ); // NaN
NaN是數(shù)字類型
盡管我們經(jīng)常將NaN與“不是數(shù)字”聯(lián)系在一起,但實(shí)際上NaN仍然是數(shù)字類型:
console.log( typeof NaN ); // "number"
結(jié)論
總之,NaN是一個(gè)特殊的數(shù)字類型,表示“不是數(shù)字”。愛(ài)掏網(wǎng) - it200.com當(dāng)我們嘗試使用非數(shù)字值執(zhí)行算術(shù)運(yùn)算時(shí),就會(huì)得到NaN。愛(ài)掏網(wǎng) - it200.com因此,在編寫JavaScript代碼時(shí),我們應(yīng)該避免出現(xiàn)意外的NaN值,以確保我們的代碼能夠正確地處理數(shù)字?jǐn)?shù)據(jù)。愛(ài)掏網(wǎng) - it200.com