LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

js里的 !0、!1 到底是啥?聊聊那些壓縮器最愛的“極簡寫法”

freeflydom
2025年6月9日 10:14 本文熱度 779

在閱讀 JavaScript 源碼,尤其是壓縮后的代碼時,很多人常常會遇到這樣的片段:

if (!0) { /* ... */ }  // 等價于 if (true)
if (!1) { /* ... */ }  // 等價于 if (false)

這些詭異的語法你可能一開始會覺得費解,但其實是壓縮器(比如 UglifyJS、Terser)為了追求 最小體積和最高性能 的結果。

這一類代碼就是所謂的 JavaScript 壓縮寫法。它們壓縮得極致,同時也保持了邏輯一致性。下面我們就系統聊聊有哪些經典寫法、為啥這么寫、哪些能用哪些要注意。


?? 布爾值壓縮:true/false 最短寫法

語義原始寫法壓縮寫法說明
truetrue!0邏輯真
falsefalse!1邏輯假
強制轉布爾值Boolean(x)!!x常見強轉布爾寫法

!!x 是最經典的布爾轉型寫法,用得非常廣泛,比如:

const isValid = !!user.id;

?? undefined 與 null 的壓縮技巧

意圖原始寫法壓縮寫法說明
undefined 值undefinedvoid 0永遠返回 undefined
判斷 undefined 類型typeof x === 'undefined'typeof x == 'undefined'雙等號足夠安全
判斷是否為 nullx === nullnull == x包括 null 和 undefined

void 0 是一個冷門但安全的寫法,它繞過了 undefined 可能被覆蓋的問題(老瀏覽器或者手動重寫)。


?? 條件邏輯壓縮

原始寫法壓縮寫法含義
x ? true : false!!x轉換為布爾值
x ? x : y`x
x ? y : nullx && yx 存在則執行 y
if (x) return true;return !!x;簡潔返回布爾

這些寫法多數來自于邏輯短路的使用,既壓縮代碼,也提升性能(少一層判斷)。


?? 類型判斷 & 替代操作符

原始寫法壓縮寫法說明
typeof foo === 'function'typeof foo == 'function'雙等號更短
Array.isArray(x)x instanceof Array兼容性略差,但更短
x !== undefinedvoid 0 !== x避免使用 undefined 字面量

壓縮器通常偏好雙等號,因為其字節更少。而 typeof 場景下使用雙等號其實是安全的(因為不會觸發類型轉換)。


?? 數組與對象壓縮

原始寫法壓縮寫法說明
[1, 2, 3].length3直接寫字面量節省字符
{a: a}{a}ES6 對象屬性簡寫
obj['key']obj.key如果 key 合法,更短更直觀

這些優化大多自動由現代壓縮器處理,無需人工介入,但有助于理解源碼。


?? 函數和箭頭函數優化

原始寫法壓縮寫法說明
function () {}()=>{}箭頭函數更短
function(a){ return a*2 }a=>2*a單表達式更可簡寫

注意,箭頭函數沒有 this,不要盲目替換類方法等。


?? 數學與位運算優化

原始寫法壓縮寫法說明
Math.floor(x)~~x雙按位取反等價于 floor
Math.pow(x, 2)x * x常數次方直接展開更快更短
parseInt(x, 10)`+x0`

但這些寫法不要輕易使用在業務代碼中,因為會讓代碼可讀性大幅下降


?? Bonus:冷門但實用的壓縮技巧

原始寫法壓縮寫法說明
for (let i=0; i<n; i++)for(i=n;i--;)倒序遍歷節省初始化代碼
a != nullnull != a可以避免 null 和 undefined
x && x.fn()x?.fn()可選鏈更短,但需現代瀏覽器支持


? 寫在最后:壓縮寫法是“寫給機器的代碼”

這些技巧大多來源于壓縮器的優化邏輯,是寫給機器看的代碼

開發者日常業務中,并不推薦自己手動這么寫。更推薦的是:

  • 業務代碼保持可讀性
  • 構建階段交給打包工具壓縮
  • 理解這些寫法,能更好閱讀源碼、調試、做逆向

轉自https://juejin.cn/post/7512699604632371250


該文章在 2025/6/9 10:14:49 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本在线免费AⅤ视频 | 亚洲精品黄免费在线观看 | 亚洲高清乱码AV在线播放 | 日韩欧美中文字幕一本 | 亚洲天天久久中文字幕精品 | 日本中文字幕一区 |