理論部分
- JavaScript 定義了幾種數(shù)據(jù)類(lèi)型? 哪些是簡(jiǎn)單類(lèi)型?哪些是復(fù)雜類(lèi)型?
- NaN、undefined株扛、null分別代表什么?
- typeof和instanceof的作用和區(qū)別?
A:
JavaScript有七種內(nèi)置類(lèi)型护姆,為別為
- 空值(null)
- 未定義(undefined)
- 布爾值 (boolean)
- 數(shù)字 (number)
- 字符串 (string)
- 對(duì)象 (object)
- 符號(hào) (symbol, ES6新增)
這里除了對(duì)象之外,其他統(tǒng)稱”基本類(lèi)型“(這里有一個(gè)疑惑先较,以前看到文章中說(shuō)js中一切都是對(duì)象携冤,當(dāng)時(shí)沒(méi)有把這句話和數(shù)據(jù)類(lèi)型結(jié)合起來(lái),現(xiàn)在看起來(lái)這句話好像有問(wèn)題闲勺。引用《JavaScript語(yǔ)言精粹》一句話:”數(shù)字曾棕,字符串和布爾值‘貌似’對(duì)象,因?yàn)樗鼈儞碛蟹椒ú搜麄兪遣豢勺兊母娼场s中的對(duì)象是可變的鍵控集合”堡距。而且這句話后面還有一句話:”js中憎亚,數(shù)組是對(duì)象膝捞,函數(shù)是對(duì)象,正則表達(dá)式是對(duì)象序芦,當(dāng)然臭杰,對(duì)象自然也是對(duì)象“)
A:
NaN意為”不是一個(gè)數(shù)字“。如果數(shù)學(xué)運(yùn)算的操作數(shù)不是數(shù)字類(lèi)型(或者無(wú)法解析為常規(guī)的十進(jìn)制 )用于指出數(shù)字類(lèi)型中錯(cuò)誤情況谚中,即”執(zhí)行數(shù)學(xué)運(yùn)算沒(méi)有成功渴杆,這是失敗后返回的結(jié)果“
undefined 變量在未持有值的時(shí)候?yàn)閡ndefined.在作用于中聲明但還沒(méi)賦值的變量,這里其實(shí)有個(gè)小trick宪塔,undefined和is not defined是兩回事磁奖。但是typeof對(duì)于not defined的變量的結(jié)果照樣返回”undefined“
null指空值。指曾賦過(guò)值某筐,但是目前沒(méi)有值比搭。
A:
typeof操作符返回一個(gè)字符串,指示未經(jīng)計(jì)算的操作數(shù)的類(lèi)型南誊。
instanceof運(yùn)算符用于測(cè)試一個(gè)對(duì)象在其原型鏈中是否存在一個(gè)構(gòu)造函數(shù)的prototype屬性身诺。
instanceof操作符未能理解,所以并不知道這兩者的區(qū)別抄囚。
代碼部分
- 一
A:
function isNumber (element) {
return typeof element ==='number';
}
- 二
- 2
- "24"
- "24"
- 4
- 三
- 3
-"number2" - 四
- undefined
- 1
- b is not defined