LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

js typeof 的魔法:原來你是這樣判斷類型的!

freeflydom
2025年6月5日 14:44 本文熱度 848

一、typeof 的基本使用

先來個(gè)最簡(jiǎn)單的例子:

console.log(typeof 42); // "number"
console.log(typeof '我'); // "string"
console.log(typeof true); // "boolean"

看起來很簡(jiǎn)單對(duì)吧?但如果你以為typeof就這么點(diǎn)能耐,那可就太小看它了!

二、typeof 的"奇葩"表現(xiàn)

這里有幾個(gè)容易踩坑的例子:

console.log(typeof null); // "object"  (黑人問號(hào)臉?)
console.log(typeof []); // "object"
console.log(typeof function(){}); // "function"

看到?jīng)]?null居然返回"object",這可是JavaScript著名的歷史遺留問題!當(dāng)年我在項(xiàng)目里就被這個(gè)坑過,debug了半天才發(fā)現(xiàn)是類型判斷出了問題。

三、typeof 的工作原理

其實(shí)typeof判斷類型的原理很簡(jiǎn)單:

  1. 對(duì)于原始類型(除null外),直接返回對(duì)應(yīng)類型字符串
  2. 對(duì)于函數(shù),返回"function"
  3. 對(duì)于其他對(duì)象(包括數(shù)組、日期等),統(tǒng)一返回"object"
  4. 對(duì)于null,這是個(gè)特例,因?yàn)闅v史原因返回"object"

四、實(shí)戰(zhàn)中的小技巧

在實(shí)際開發(fā)中,我經(jīng)常用這樣的組合判斷:

function checkType(value) {
    if (value === null) return 'null';
    return typeof value === 'object' 
        ? Object.prototype.toString.call(value).slice(8, -1).toLowerCase()
        : typeof value;
}
console.log(checkType([])); // "array"
console.log(checkType(new Date())); // "date"

五、為什么要有typeof?

想象一下沒有typeof的世界:

// 要這樣判斷類型嗎?(太可怕了!)
if (value.constructor === String) {...}
if (value instanceof Array) {...}

typeof提供了一種快速判斷基本類型的方法,雖然不完美,但在大多數(shù)情況下已經(jīng)夠用了。

六、新型替代方案

現(xiàn)在我們有更多選擇:

// ES6+ 的替代方案
console.log(Array.isArray([])); // true
console.log(typeof 我 === 'undefined'); // 檢查未定義

七、總結(jié)

  • typeof是JS內(nèi)置的類型判斷操作符
  • 對(duì)原始類型判斷準(zhǔn)確(除null外)
  • 對(duì)引用類型大部分返回"object"
  • 函數(shù)會(huì)返回"function"
  • 實(shí)際開發(fā)中可能需要組合其他判斷方法

?轉(zhuǎn)自https://juejin.cn/post/7511927859772407827


該文章在 2025/6/5 14:44:16 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
一伊人久久香线蕉综合 | 综合伊人久久在 | 日本狂喷奶水在线播放114 | 一本一本久久a久久精品综合不 | 一级a一级a爰片免费免免在线 | 在线播放一区二区不卡三区 |