js高級(jí)程序設(shè)計(jì)閱讀摘錄1

1. typeof獲取未定義的變量也為undefined
var message; // 這個(gè)變量聲明之后默認(rèn)取得了 undefined 值
// 下面這個(gè)變量并沒(méi)有聲明
// var age
alert(typeof message); // "undefined"
alert(typeof age); // "undefined" 
2.typeof判斷數(shù)組類型的缺陷
typeof([]) //object

第一鐘解決方案
[] instanceof Array //適用場(chǎng)景限制 只適用在與數(shù)組初始化相同的環(huán)境下才有xiao
common deals
Object.prototype.toString.call([]) //無(wú)限制 jq $.type源碼也是這樣實(shí)現(xiàn)的。

3.自動(dòng)轉(zhuǎn)換為boolean

建議通過(guò)!!a方式,===和!== 避免弱類型轉(zhuǎn)換

image.png
4.NaN

NaN 本身有兩個(gè)非同尋常的特點(diǎn)。首先,任何涉及 NaN 的操作(例如 NaN/10)都會(huì)返回 NaN,這
個(gè)特點(diǎn)在多步計(jì)算中有可能導(dǎo)致問(wèn)題。其次,NaN 與任何值都不相等,包括 NaN 本身。例如,下面的代
碼會(huì)返回 false:

alert(NaN == NaN); //false 
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10 是一個(gè)數(shù)值)
alert(isNaN("10")); //false(可以被轉(zhuǎn)換成數(shù)值 10)
alert(isNaN("blue")); //true(不能轉(zhuǎn)換成數(shù)值)
alert(isNaN(true)); //false(可以被轉(zhuǎn)換成數(shù)值 1)
5.Number()、parseInt()和 parseFloat()
var num1 = Number("Hello world!"); //NaN
var num2 = Number(""); //0
var num3 = Number("000011"); //11
var num4 = Number(true); //1 

用 parseInt()轉(zhuǎn)換空字符串會(huì)返回 NaN(Number()對(duì)空字符返回 0)。如果第一個(gè)字符是數(shù)字字符,parseInt()會(huì)繼續(xù)解析第二個(gè)字符,直到解析完所有后續(xù)字符或者遇到了一個(gè)非數(shù)字字符。例如,"1234blue"會(huì)被轉(zhuǎn)換為 1234,因?yàn)?blue"會(huì)被完全忽略。類似地,"22.5"會(huì)被轉(zhuǎn)換為 22,因?yàn)樾?shù)點(diǎn)并不是有效的數(shù)字字符。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容