当前位置:首页 > 科技  > 软件

大大提高开发效率的十个JavaScript技巧

来源: 责编: 时间:2024-03-18 17:47:23 250观看
导读JavaScript 是前端开发中的必备语言。但是我发现很多同学对于 JavaScript 的技巧使用却并不熟悉。所以,今天咱们就来分享一下 JavaScript 的10个好用的技巧,帮你更好地使用 JavaScript,提升开发效率!1. 使用 flatMap有些

JavaScript 是前端开发中的必备语言。但是我发现很多同学对于 JavaScript 的技巧使用却并不熟悉。所以,今天咱们就来分享一下 JavaScript 的10个好用的技巧,帮你更好地使用 JavaScript,提升开发效率!SjO28资讯网——每日最新资讯28at.com

1. 使用 flatMap

有些 JavaScript 方法尽管鲜为人知,但它们解决独特挑战的潜力能够增强编码效率, 比如 flatMap()SjO28资讯网——每日最新资讯28at.com

数组方法 flatMap() 本质上是 map()和 flat() 的组合,区别在于 flatMap 只能扁平1级,flat 可以指定需要扁平的级数,flatmap 比分别调用这两个方法稍微高效一些。SjO28资讯网——每日最新资讯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 非常适合在需要灵活性和可读性的情况下使用。SjO28资讯网——每日最新资讯28at.com

2. console 的妙用

console 并不只有 console.log(), 实际生产中都会使用已经封装好的log库,而 控制台对象 console 实际上内置了许多非常有用的方法,帮助您提高调试输出的质量和可读性,掌握它们能使您更轻松地 debug 和修复代码中的问题。SjO28资讯网——每日最新资讯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 等 ) 的更复杂对象时,是有很多不足之处的SjO28资讯网——每日最新资讯28at.com

而现在,JavaScript 内置了一个 structuredClone() 的方法, 此方法提供了一种简单有效的方法来深度克隆对象, 且适用于大多数现代浏览器和 Node.js v17 以上SjO28资讯网——每日最新资讯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 中使用深拷贝最简单的方法。SjO28资讯网——每日最新资讯28at.com

4. 带标签的模板

带标签的模板(Tagged/_Templates[2]) - 是模板字符串(反引号)的一种更高级的形式,它允许你使用函数解析模板字面量。SjO28资讯网——每日最新资讯28at.com

这个高级特性我也是在 Next.js 14[3] 发布后人们都在讨论的一张图才去了解的

本文链接:http://www.28at.com/showinfo-26-77530-0.html大大提高开发效率的十个JavaScript技巧

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Python黑科技:探索反射和动态属性的无限可能

下一篇: 不完美、但成功,SpaceX 星舰 No.3 发射的真正意义

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 容量越大越不坏?24万块硬盘故障率报告公布 这些产品零故障

    8月5日消息,云存储服务商Backblaze发布了最新的硬盘故障率报告,年故障率有所上升。Backblaze发布的硬盘季度统计数据,其中包括故障率等重要方面。这些结
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

    在 Elasticsearch 中,function_score 可以让我们在查询的同时对搜索结果进行自定义评分。function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。近期
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top