所有的數(shù)據(jù)類型值,在計算機底層都是安裝64位的二進制進行存儲的

Snipaste_2022-04-16_21-23-52.png
- typeof是按照二進制值進行檢測類型的
- 二進制前三位是000,認為是對象,如果實現(xiàn)了call方法,則返回’function‘,否則返回’object‘
- null是64個0,所以typeof null -> 'object' 可以認為是個bug
- 檢測未聲明的變量,值是’undefined‘
console.log(a); // RHS查詢,未找到報錯 Uncaught ReferenceError: a is not defined
console.log(typeof a); // undefined
typeof 使用場景
- 場景1
判斷是否是對象
const isObject = (obj) => {
const type = typeof obj
return obj !== null && (type === 'object' || type === 'function')
}
- 場景2
支持更多的模塊導入方案
(function () {
let utils = {}
// 判斷瀏覽器環(huán)境
if (typeof window !== 'undefined') {
window.utils = utils
}
// 判斷nodejs環(huán)境
if (typeof module === 'object' && typeof module.exports === 'object') {
module.exports = utils
}
})()