公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

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

刷新你的認知!12 個不為人知的 JavaScript 冷知識

admin
2025年1月8日 20:32 本文熱度 772

盡管我們對 JavaScript 已經(jīng)相當熟悉了,但這門語言中仍存在許多有趣的特性和行為,今天分享 12 個鮮為人知的 JavaScript 冷知識。

1. 函數(shù)的長度屬性

你可能知道數(shù)組有 length 屬性,但函數(shù)也有!函數(shù)的 length 屬性返回函數(shù)期望的參數(shù)個數(shù)(形參數(shù)量)。

function foo(a, b, c = 3) { return a + b + c; }
console.log(foo.length); // 2,不包括帶默認值的參數(shù)!

function bar(a, b = 2, c) { return a + b + c; }
console.log(bar.length); // 1,從第一個帶默認值的參數(shù)開始后面的都不算

(() => {}).length; // 0
((...args) => {}).length; // 0

這個特性在編寫高階函數(shù)或函數(shù)式編程時特別有用,可以用來進行函數(shù)的參數(shù)匹配。

2. void 運算符不只是不返回值

void 運算符不僅可以用來確保表達式不返回值,還可以用來解決一些特殊問題:

// 1. 防止箭頭函數(shù)返回值
const onClick = () => void doSomething();

// 2. 創(chuàng)建純凈的 undefined
let undefined = 'hello';
console.log(void 0); // undefined

// 3. 立即執(zhí)行 Promise
void Promise.resolve().then(() => {
 console.log('異步執(zhí)行');
});

// 4. 阻止默認的 href 跳轉(zhuǎn)
<a href="javascript:void(0)">點擊</a>

3. Function.prototype.toString() 的變化

ES2019 之后,Function.prototype.toString() 會保留函數(shù)的原始格式,包括注釋和空格:

function /* 這是注釋 */ foo() {
 console.log("Hello");  // 這也是注釋
}

console.log(foo.toString());
// function /* 這是注釋 */ foo() {
//   console.log("Hello");  // 這也是注釋
// }

// 甚至適用于內(nèi)置函數(shù)
console.log(Array.prototype.push.toString());
// "function push() { [native code] }"

4. 逗號運算符的隱藏用途

逗號運算符可以在一些意想不到的地方使用,比如箭頭函數(shù)或三元運算符中:

// 在箭頭函數(shù)中執(zhí)行多條語句
const increment = x => (console.log(x), x + 1);

// 在三元運算符中執(zhí)行多個操作
const result = condition
 ? (func1(), func2(), value1)
 : (func3(), func4(), value2);

// 在數(shù)組方法中巧妙運用
const arr = [1, 2, 3];
arr.map(x => (x *= 2, x -= 1)); // [1, 3, 5]

5. 可選鏈操作符的隱藏技巧

可選鏈操作符不僅可以用于對象屬性,還可以用于函數(shù)調(diào)用和數(shù)組:

// 函數(shù)調(diào)用
const result = someFunction?.();

// 數(shù)組訪問
const arr = null;
console.log(arr?.[0]); // undefined

// 動態(tài)屬性名
const propName = null;
console.log(obj?.[propName?.toString()]); // undefined

// 與空值合并操作符組合
const value = obj?.prop ?? 'default';

6. Symbol.asyncIterator 的妙用

你可以使用 Symbol.asyncIterator 創(chuàng)建自定義的異步迭代器:

7. 利用 Object.defineProperty 創(chuàng)建常量對象

你可以創(chuàng)建真正的常量對象,其屬性完全不可修改:

8. Label 語句的妙用

JavaScript 中的 label 語句雖然不常見,但在特定場景下非常有用,特別是在嵌套循環(huán)中:

9. 使用 Proxy 實現(xiàn)私有屬性

在類私有字段還未普及之前,可以使用 Proxy 來模擬私有屬性:

10. 利用 Generator 實現(xiàn)范圍數(shù)據(jù)類型

JavaScript 沒有原生的范圍類型,但我們可以用 Generator 實現(xiàn):

11. BigInt 的特殊行為

BigInt 有一些出人意料的行為:

12. Intl API 的強大功能

Intl API 不僅可以用于格式化日期和數(shù)字,還有很多強大的功能:

// 相對時間格式化
const rtf = new Intl.RelativeTimeFormat('zh', { numeric: 'auto' });
console.log(rtf.format(-1, 'day')); // "昨天"
console.log(rtf.format(7, 'day')); // "7天后"

// 復數(shù)規(guī)則
const pr = new Intl.PluralRules('en-US');
console.log(pr.select(0)); // "other"
console.log(pr.select(1)); // "one"
console.log(pr.select(2)); // "other"

// 分段器
const segmenter = new Intl.Segmenter('zh', { granularity: 'word' });
const segments = segmenter.segment('你好,世界!');
console.log([...segments].map(s => s.segment)); // ["你好", ",", "世界", "!"]

歡迎補充。


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

主站蜘蛛池模板: 国产成人一区二区三区免费3 | 国产区免费在线观看 | 成人亚洲片v一区二区中出片 | 国产巨大爆乳在线观看 | a级毛片一区二区免费视频 a级毛片在线播放 | a级毛片无码免费真人 | 2025日本人人爽 | 3d动漫精品一区视频 | 国产极品猫女在线观看 | 国产高清一级毛片在线视频 | 国产经典自拍一区 | 国产成人高清成人av片在线看 | 国产区在线观看 | 国产在线精品一区二区高清不卡 | 99精品视频69v精品视频 | aⅴ毛片免费观看 | 国产一区二区三区在线视頻 | 国产一区二区三区欧美精品 | 国产真人一级a爱做片 | 国产精品麻豆天美精品久久 | 精品人妻少妇嫩草av无 | 国产a一级黄片视频 | 国产精品成人一区二区三区视 | 国产专区一线二线三线品牌 | 99久久精品成 | 成在线人av免费无码高潮喷水 | a亚洲国产v高清不卡 | 国产成人五月综合网 | 精品国产品国语原创 | 国产精品国产免费无码专区不 | 白嫩无码人妻丰满熟妇啪啪区百度 | 国产aⅴ人| 国产综合精品一区 | 国产日韩欧美一区二区东京 | 国产无套护士在线观看 | 99久久久无码国产精品古装 | 国产成人免费高潮激情视频 | 精品午夜一区二区三区在线观看 | 成人免费一级毛片在线播放视频 | 国产在线a不卡免费视频 | 国产成人精品播放视频 |