日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

大大提高開發效率的十個JavaScript技巧

來源: 責編: 時間:2024-03-18 17:47:23 190觀看
導讀JavaScript 是前端開發中的必備語言。但是我發現很多同學對于 JavaScript 的技巧使用卻并不熟悉。所以,今天咱們就來分享一下 JavaScript 的10個好用的技巧,幫你更好地使用 JavaScript,提升開發效率!1. 使用 flatMap有些

JavaScript 是前端開發中的必備語言。但是我發現很多同學對于 JavaScript 的技巧使用卻并不熟悉。所以,今天咱們就來分享一下 JavaScript 的10個好用的技巧,幫你更好地使用 JavaScript,提升開發效率!XC628資訊網——每日最新資訊28at.com

1. 使用 flatMap

有些 JavaScript 方法盡管鮮為人知,但它們解決獨特挑戰的潛力能夠增強編碼效率, 比如 flatMap()XC628資訊網——每日最新資訊28at.com

數組方法 flatMap() 本質上是 map()和 flat() 的組合,區別在于 flatMap 只能扁平1級,flat 可以指定需要扁平的級數,flatmap 比分別調用這兩個方法稍微高效一些。XC628資訊網——每日最新資訊28at.com

  • 使用 flat + map
const arr = [1, 2, [4, 5], 6, 7, [8]];// 使用 map 對每個元素進行操作并用 flat 展平結果const result = arr.map(element => Array.isArray(element) ? element : [element]).flat();console.log(result); // output: [1, 2, 4, 5, 6, 7, 8]
  • 使用 flatmap
const arr = [1, 2, [4, 5], 6, 7, [8]] ;console.log(arr.flatMap((element) => element)); // output :[1, 2, 4, 5, 6, 7, 8]

flatmap 盡管是一個方法,但也會有 中間數組 /(指中間創建了必須進行垃圾收集的臨時數組/)[1]的產生,flatMap 非常適合在需要靈活性和可讀性的情況下使用。XC628資訊網——每日最新資訊28at.com

2. console 的妙用

console 并不只有 console.log(), 實際生產中都會使用已經封裝好的log庫,而 控制臺對象 console 實際上內置了許多非常有用的方法,幫助您提高調試輸出的質量和可讀性,掌握它們能使您更輕松地 debug 和修復代碼中的問題。XC628資訊網——每日最新資訊28at.com

// 1. console.time 和 console.timeEnd// 測量執行一段代碼所需的時間。識別代碼中的性能瓶頸并對其進行優化console.time('開始獲取數據');fetch('https://reqres.in/api/users') .then(response => response.json()) .then(data => { console.timeEnd('獲取數據花費時間:'); // ...code });  // 2. console.dir// console.dir 方法以分層格式輸出對象的屬性。方便查看對象的結構以及其所有屬性和方法const promise = new Promise((resolve, reject) => resolve('foo'));console.dir(promise);// 3. console.count// console.count 方法來計算特定日志消息的輸出次數。這對于跟蹤特定代碼路徑的執行次數以及識別代碼中的熱點非常有用const fun = (x) => console.count(x);fun('刻晴'); // 1fun('甘雨'); // 1fun('刻晴'); // 2// 4. console.trace// trace 可以輸出堆棧跟蹤。對于理解代碼中的執行流程以及識別特定日志消息的來源非常有用const foo = () => console.trace();const bar = () => foo();bar();// 5. console.profile profileEnd// 測量代碼塊的性能。這對于識別性能瓶頸以及優化代碼以提高速度和效率非常有用。console.profile('MyProfile');// 想要測量性能的代碼for (let i = 0; i < 100000; i++) { // ...code}console.profileEnd('MyProfile');

3. 深拷貝 structuredClone()

此前,如果開發人員想要深拷貝對象,經常需要依賴第三方庫來實現或者手動實現一個神拷貝,或者采取 const cloneObj = JSON.parse(JSON.stringify(obj)); 的 hack, 但其在處理包含循環引用或不符合 JSON 的數據類型(如 Map 和 Set,Blob 等 ) 的更復雜對象時,是有很多不足之處的XC628資訊網——每日最新資訊28at.com

而現在,JavaScript 內置了一個 structuredClone() 的方法, 此方法提供了一種簡單有效的方法來深度克隆對象, 且適用于大多數現代瀏覽器和 Node.js v17 以上XC628資訊網——每日最新資訊28at.com

// 將原始對象傳遞給該函數, 它將返回一個具有不同引用和對象屬性引用的深層副本const obj = { name: 'Mike', friends: [{ name: 'Sam' }] };const clonedObj = structuredClone(obj);console.log(obj.name === clonedObj); // falseconsole.log(obj.friends === clonedObj.friends); // false

與眾所周知的 JSON.parse(JSON.stringify())” 不同, structuredClone() 允許您克隆循環引用,這是目前在 JavaScript 中使用深拷貝最簡單的方法。XC628資訊網——每日最新資訊28at.com

4. 帶標簽的模板

帶標簽的模板(Tagged/_Templates[2]) - 是模板字符串(反引號)的一種更高級的形式,它允許你使用函數解析模板字面量。XC628資訊網——每日最新資訊28at.com

這個高級特性我也是在 Next.js 14[3] 發布后人們都在討論的一張圖才去了解的

本文鏈接:http://www.www897cc.com/showinfo-26-77530-0.html大大提高開發效率的十個JavaScript技巧

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python黑科技:探索反射和動態屬性的無限可能

下一篇: 不完美、但成功,SpaceX 星艦 No.3 發射的真正意義

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 襄城县| 伊宁县| 响水县| 华宁县| 宝鸡市| 唐海县| 双桥区| 颍上县| 西乡县| 德钦县| 台州市| 南丹县| 青河县| 报价| 安溪县| 中江县| 长垣县| 濮阳市| 都江堰市| 杭锦旗| 辽源市| 方山县| 赣州市| 斗六市| 广汉市| 类乌齐县| 白银市| 朝阳区| 新田县| 昌平区| 丰原市| 天峨县| 沿河| 若尔盖县| 佛山市| 手游| 乌拉特后旗| 扬中市| 崇义县| 济阳县| 吴江市|