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

现在就可以使用的 20 个 JavaScript 技巧和窍门

来源: 责编: 时间:2023-10-18 17:59:17 207观看
导读1、解构魔法:轻松提取值解构允许你轻松地从数组或对象中解包值。以下是一个例子:const person = { name: 'Alice’, age: 30 };const { name, age } = person;console.log(name); // Output: Aliceconsole.log(age); //

ley28资讯网——每日最新资讯28at.com

1、解构魔法:轻松提取值

解构允许你轻松地从数组或对象中解包值。以下是一个例子:ley28资讯网——每日最新资讯28at.com

const person = { name: 'Alice’, age: 30 };const { name, age } = person;console.log(name); // Output: Aliceconsole.log(age); // Output: 30

2、展开运算:克隆数组和合并对象

扩展运算符(...)让你能轻松地创建数组的副本并合并对象:ley28资讯网——每日最新资讯28at.com

const originalArray = [1, 2, 3];const clonedArray = [...originalArray];console.log(clonedArray); // Output: [1, 2, 3]

合并对象:ley28资讯网——每日最新资讯28at.com

const obj1 = { a: 1, b: 2 };const obj2 = { b: 3, c: 4 };const merged = { ...obj1, ...obj2 };console.log(merged); // Output: { a: 1, b: 3, c: 4 }

3、map() 轻松实现转换

map()方法是你转换数据的秘密武器:ley28资讯网——每日最新资讯28at.com

const numbers = [1, 2, 3];const squared = numbers.map(num => num * num);console.log(squared); // Output: [1, 4, 9]

4、 && 和 || 的短路操作:优雅的条件判断

使用 && 和 || 来创建清晰简洁的条件语句:ley28资讯网——每日最新资讯28at.com

const name = user.name || 'Guest';console.log(name); // Output: Guest

5、串联 setTimeout():延迟序列化

将setTimeout()链接起来可以创建一系列的延迟操作:ley28资讯网——每日最新资讯28at.com

function delayedLog(message, time) {  setTimeout(() => {    console.log(message);  }, time);}delayedLog('Hello', 1000); // Output (after 1 second): Hello

6、箭头函数:简洁而强大

箭头函数(() => {})不仅简洁,而且还保留了this的值:ley28资讯网——每日最新资讯28at.com

const greet = name => `Hello, ${name}!`;console.log(greet(’Alice’)); // Output: Hello, Alice!

7、掌握 Promise.all():处理多个 Promise

使用 Promise.all() 来合并多个承诺并集体处理它们:ley28资讯网——每日最新资讯28at.com

const promise1 = fetch('url1');const promise2 = fetch('url2');Promise.all([promise1, promise2])  .then(responses => console.log(responses))  .catch(error => console.error(error));

8、动态属性名称:多功能对象键

可以使用方括号将变量用作对象属性名称:ley28资讯网——每日最新资讯28at.com

const key = 'name';const person = { [key]: 'Alice' };console.log(person.name); // Output: Alice

9、模板字面量魔法:字符串格式化

模板字面量 (${}) 允许你在字符串中嵌入表达式:ley28资讯网——每日最新资讯28at.com

const name = 'Alice';const greeting = `Hello, ${name}!`;console.log(greeting); // Output: Hello, Alice!

10、NaN 检查:更安全的替代方案

使用 Number.isNaN() 来准确地检查一个值是否为 NaN:ley28资讯网——每日最新资讯28at.com

const notANumber = 'Not a number';console.log(Number.isNaN(notANumber)); // Output: false

11、可选链(?.):驯服未定义的值

在处理嵌套属性时,通过可选链来避免错误:ley28资讯网——每日最新资讯28at.com

const user = { info: { name: 'Alice' } };console.log(user.info?.age); // Output: undefined

12、正则表达式复兴:掌握模式

正则表达式(RegExp)是用于模式匹配的强大工具:ley28资讯网——每日最新资讯28at.com

const text = 'Hello, world!';const pattern = /Hello/g;console.log(text.match(pattern)); // Output: ['Hello']

13、JSON.parse() reviver:转换解析数据

在JSON.parse()中的reviver参数允许你转换解析后的JSON:ley28资讯网——每日最新资讯28at.com

const data = '{"age":"30"}';const parsed = JSON.parse(data, (key, value) => {  if (key === 'age') return Number(value);  return value;});console.log(parsed.age); // Output: 30

14. 酷炫控制台技巧:调试的乐趣

使用console.table()和console.groupCollapsed()超越console.log():ley28资讯网——每日最新资讯28at.com

const users = [{ name: 'Alice' }, { name: 'Bob' }];console.table(users);console.groupCollapsed(’Details’);console.log(’Name: Alice’);console.log(’Age: 30’);console.groupEnd();

15、使用async/await获取:异步简易性

使用fetch()的async/await简化了处理异步请求:ley28资讯网——每日最新资讯28at.com

async function fetchData() {  try {    const response = await fetch('url');    const data = await response.json();    console.log(data);  } catch (error) {    console.error(error);  }}fetchData();

16、无拘无束的闭包:数据隐私

闭包让你在函数中创建私有变量:ley28资讯网——每日最新资讯28at.com

function createCounter() {  let count = 0;  return function () {    count++;    console.log(count);  };}const counter = createCounter();counter(); // Output: 1counter(); // Output: 2

17、提高速度的缓存:高效重新计算

备忘录化通过缓存函数结果来提高性能:ley28资讯网——每日最新资讯28at.com

function fibonacci(n, memo = {}) {  if (n in memo) return memo[n];  if (n <= 2) return 1;  memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);  return memo[n];}console.log(fibonacci(10)); // Output: 55

18、IntersectionObserver:轻松的滚动效果

使用 Intersection Observer 者API进行懒加载和滚动动画:ley28资讯网——每日最新资讯28at.com

const observer = new IntersectionObserver(entries => {  entries.forEach(entry => {    if (entry.isIntersecting) {      entry.target.classList.add('fade-in');      observer.unobserve(entry.target);    }  });});const elements = document.querySelectorAll('.animate');elements.forEach(element => observer.observe(element));

19、清晰代码的ES6模块:有组织且模块化

使用ES6模块来编写整洁、模块化的代码:ley28资讯网——每日最新资讯28at.com

// math.jsexport function add(a, b) {  return a + b;}// app.jsimport { add } from './math.js';console.log(add(2, 3)); // Output: 5

20、Proxy:超越对象

代理允许你拦截并自定义对象操作:ley28资讯网——每日最新资讯28at.com

const handler = {  get(target, prop) {    return `Property "${prop}" doesn't exist.`;  }};const proxy = new Proxy({}, handler);console.log(proxy.name); // Output: Property "name" doesn’t exist.

配备了这20个JavaScript的小窍门和技巧,你已经有了足够的装备,可以将你的编程技能提升到新的水平。ley28资讯网——每日最新资讯28at.com

ley28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-14010-0.html现在就可以使用的 20 个 JavaScript 技巧和窍门

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

上一篇: 为什么架构设计总没法一劳永逸?

下一篇: Node.js 21 正式发布,赶紧来看看有哪些更新吧!

标签:
  • 热门焦点
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • 把LangChain跑起来的三个方法

    把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 三言两语说透设计模式的艺术-单例模式

    三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 得物效率前端微应用推进过程与思考

    得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • 每天一道面试题-CPU伪共享

    每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 使用AIGC工具提升安全工作效率

    使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • “又被陈思诚骗了”

    “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的&ldquo;今天&rdquo;,百度也很迷茫。&ldquo;新业务到 2022 年底还是 0,希望 2023 年出来一个 1。&rdquo;这是2022年底,李彦宏
Top
Baidu
map