更新時(shí)間:2023-06-16 來源:黑馬程序員 瀏覽量:
在開發(fā)中,當(dāng)不確定一個(gè)變量或值是什么數(shù)據(jù)類型的時(shí)候,可以利用 typeof 運(yùn)算符進(jìn)行數(shù)據(jù)類型檢測。示例代碼如下。
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檢測 null 值時(shí)返回的是 object,而不是 null,這是 JavaScript 最初實(shí)現(xiàn)時(shí)的歷史遺留問題,后來被ECMAScript沿用下來。
使用typeof可以很方便地檢測變量的數(shù)據(jù)類型,示例代碼如下。
var age= prompt請輸人您的年齡); 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)算符“==”來判斷typeof返回的檢測結(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)常會遇到字面量的概念。字面量是指源代碼中的固定值的表示法,簡單來說,就是用字面量來表示如何在代碼中表達(dá)這個(gè)值。通過字面量,我們可以很容易地看出來它是哪種類型的值。常見的字面量如下。
數(shù)字字面量:8、9、10 字符串字面量:!hello'、"world" 布爾字面量:true、false 數(shù)組字面量(在后面會學(xué)到):[1,2,3] 對象字面量(在后面會學(xué)到):{ name:·小明,age:18 }