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

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

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

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

1. 使用 flatMap

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

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

2. console 的妙用

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

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

4. 带标签的模板

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

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

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

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

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

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

标签:
  • 热门焦点
  • 把LangChain跑起来的三个方法

    把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 十个简单但很有用的Python装饰器

    十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • Python异步IO编程的进程/线程通信实现

    Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • 为什么你不应该使用Div作为可点击元素

    为什么你不应该使用Div作为可点击元素

    按钮是为任何网络应用程序提供交互性的最常见方式。但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。但通过这样做,我们错过了许多内置浏览器的功能。
  • 猿辅导与新东方的两种“归途”

    猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对&ldquo;势&rdquo;的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • 三星折叠屏手机去年销售近1000万台 今年目标定为1500万

    三星折叠屏手机去年销售近1000万台 今年目标定为1500万

    7月29日消息,三星率先发力可折叠手机市场,在全球市场已经取得了非常亮眼的成绩,接下来会进一步巩固和扩大这一优势。三星在推出Galaxy Z Flip5和Galax
  • 自研Exynos回归!三星Galaxy S24系列将提供Exynos和骁龙双版本

    自研Exynos回归!三星Galaxy S24系列将提供Exynos和骁龙双版本

    年初,全新的三星Galaxy S23系列发布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三个版本,全系搭载超频版骁龙8 Gen 2,虽同样采用台积电4nm工艺制
  • “买真退假” 这种“羊毛”不能薅

    “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主&ldquo;七王&rdquo;在群里介绍一些刷单赚
Top