更新時(shí)間:2023-06-16 來(lái)源:黑馬程序員 瀏覽量:
在開(kāi)發(fā)中,當(dāng)不確定一個(gè)變量或值是什么數(shù)據(jù)類型的時(shí)候,可以利用 typeof 運(yùn)算符進(jìn)行數(shù)據(jù)類型檢測(cè)。示例代碼如下。
console.log(typeof 12); // 輸出結(jié)果:number console.log(typeof!12'); // 輸出結(jié)果:string console.log(typeof true); // 輸出結(jié)果:boolean console.log (typeof undefined) ; // 輸出結(jié)果:undefined console.log(typeof null); // 輸出結(jié)果 :object
在上述示例中,typeof檢測(cè) null 值時(shí)返回的是 object,而不是 null,這是 JavaScript 最初實(shí)現(xiàn)時(shí)的歷史遺留問(wèn)題,后來(lái)被ECMAScript沿用下來(lái)。
使用typeof可以很方便地檢測(cè)變量的數(shù)據(jù)類型,示例代碼如下。
var age= prompt請(qǐng)輸人您的年齡); console.og(age) console.log(typeof age);
上述代碼執(zhí)行后,如果用戶什么都不輸入,單擊“確定”按鈕,則age 的值為空字符串類型為string;如果單擊“取消”按鈕,則age的值為null,類型為 object;如果輸入的是-個(gè)數(shù)字,則age的值是用字符串保存的數(shù)字,類型為string。
typeof運(yùn)算符的返回結(jié)果是一個(gè)字符串,可以使用比較運(yùn)算符“==”來(lái)判斷typeof返回的檢測(cè)結(jié)果是否符合預(yù)期,示例代碼如下。
vara=112'; console.log(typeof a==istring'); // 輸出結(jié)果 :true console.log(typeof a== inumber'); // 輸出結(jié)果:false
在上述代碼中,“typeofa”的返回結(jié)果是string,在與字符串string 比較時(shí),結(jié)果為true,表示a是string類型;與number 比較時(shí),結(jié)果為false,表示a不是number類型。
字面量
在閱讀JavaScript 的一些教程、文檔時(shí),我們經(jīng)常會(huì)遇到字面量的概念。字面量是指源代碼中的固定值的表示法,簡(jiǎn)單來(lái)說(shuō),就是用字面量來(lái)表示如何在代碼中表達(dá)這個(gè)值。通過(guò)字面量,我們可以很容易地看出來(lái)它是哪種類型的值。常見(jiàn)的字面量如下。
數(shù)字字面量:8、9、10 字符串字面量:!hello'、"world" 布爾字面量:true、false 數(shù)組字面量(在后面會(huì)學(xué)到):[1,2,3] 對(duì)象字面量(在后面會(huì)學(xué)到):{ name:·小明,age:18 }