20 个 JavaScript 简化技巧,让你的代码更上一层楼!

简介: JavaScript 既灵活又强大,掌握以下20个技巧可助你编写更简洁高效的代码

JavaScript 既灵活又强大,但要精通它也需要下一番功夫。以下 20 个 JavaScript 技巧和窍门,每个开发者都应该知道,它们可以帮你写出更简洁、更高效的代码,并改进你的开发流程。🌟

  1. 用 let 和 const 代替 var 🚫
    不要再用 var 声明变量了! 使用 let 和 const 可以确保块级作用域,并避免变量提升带来的问题。
    示例:
    javascript 代码解读复制代码let name = 'John';
    const age = 30;

  2. 解构赋值 🌟
    解构赋值可以让你从数组或对象中提取值,并赋值给独立的变量。
    示例:
    javascript 代码解读复制代码const person = { name: 'Jane', age: 25 };
    const { name, age } = person;

const numbers = [1, 2, 3];
const [first, second] = numbers;

  1. 模板字面量 📜
    模板字面量提供了一种简单的方法,可以将变量和表达式插入到字符串中。
    示例:
    javascript 代码解读复制代码const name = 'John';
    const greeting = Hello, ${name}!;

  2. 默认参数 🛠️
    为函数参数设置默认值,可以避免 undefined 错误。
    示例:
    javascript 代码解读复制代码function greet(name = 'Guest') {
    return Hello, ${name}!;
    }

  3. 箭头函数 🎯
    箭头函数语法简洁,并且词法绑定 this 值。
    示例:
    javascript 代码解读复制代码const add = (a, b) => a + b;

  4. 扩展运算符 ... 🌐
    扩展运算符可以展开可迭代对象(如数组)的元素或对象的属性。
    示例:
    javascript 代码解读复制代码const arr1 = [1, 2, 3];
    const arr2 = [...arr1, 4, 5];

const obj1 = { name: 'John' };
const obj2 = { ...obj1, age: 30 };

  1. 剩余参数 ... 🌟
    剩余参数允许你将不确定数量的参数表示为一个数组。
    示例:
    javascript 代码解读复制代码function sum(...numbers) {
    return numbers.reduce((total, num) => total + num, 0);
    }

  2. 短路求值 && 和 || 🛠️
    使用短路求值来简化条件表达式和默认值的处理。
    示例:
    javascript 代码解读复制代码const user = { name: 'John' };
    const name = user.name || 'Guest';

const isAdmin = user.isAdmin && 'Admin';

  1. 对象属性简写 🚀
    当属性名和变量名相同时,使用简写语法创建对象。
    示例:
    javascript 代码解读复制代码const name = 'John';
    const age = 30;
    const person = { name, age };

  2. 可选链 ?. 🌐
    可选链允许你安全地访问深层嵌套的属性,而无需检查每个引用是否有效。
    示例:
    javascript 代码解读复制代码const user = { name: 'John', address: { city: 'New York' } };
    const city = user.address?.city;

  3. 空值合并运算符 ?? 🌟
    空值合并运算符 (??) 可以在左侧操作数为 null 或 undefined 时返回右侧操作数。
    示例:
    javascript 代码解读复制代码const user = { name: 'John' };
    const name = user.name ?? 'Guest';

  4. 数组方法:map()、filter()、reduce() 🛠️
    使用 map()、filter() 和 reduce() 等数组方法,以函数式的方式对数组执行常见操作。
    示例:
    javascript 代码解读复制代码const numbers = [1, 2, 3, 4, 5];

const doubled = numbers.map(num => num * 2);
const evens = numbers.filter(num => num % 2 === 0);
const sum = numbers.reduce((total, num) => total + num, 0);

  1. Promise 链和 Async/Await 🎯
    使用 Promise 和 async/await 语法处理异步操作,使代码更清晰、更易读。
    Promise 示例:
    javascript 代码解读复制代码fetch
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

Async/Await 示例:
javascript 代码解读复制代码async function fetchData() {
try {
const response = await fetch
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Error:', error);
}
}

  1. 防抖和节流 🌟
    通过防抖和节流优化频繁调用的函数的性能,例如滚动或调整大小事件期间的函数。
    防抖示例:
    javascript 代码解读复制代码function debounce(func, delay) {
    let timeoutId;
    return function(...args) {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => func.apply(this, args), delay);
    };
    }

window.addEventListener('resize', debounce(() => {
console.log('Resized');
}, 300));

节流示例:
javascript 代码解读复制代码function throttle(func, limit) {
let inThrottle;
return function(...args) {
if (!inThrottle) {
func.apply(this, args);
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}

window.addEventListener('scroll', throttle(() => {
console.log('Scrolled');
}, 300));

  1. 使用 for...of 循环进行迭代 🚀
    使用 for...of 循环对数组、字符串和其他可迭代对象进行更易读的迭代。
    示例:
    javascript 代码解读复制代码const numbers = [1, 2, 3, 4, 5];

for (const number of numbers) {
console.log(number);
}

  1. 克隆对象和数组 🛠️
    使用扩展运算符或 Object.assign() 来克隆对象和数组。
    示例:
    javascript 代码解读复制代码const original = { name: 'John', age: 30 };
    const clone = { ...original };

const arr = [1, 2, 3];
const arrClone = [...arr];

  1. 动态属性名 🌟
    使用计算属性名来动态设置对象属性。
    示例:
    javascript 代码解读复制代码const propName = 'age';
    const person = {
    name: 'John',

};

  1. 使用 setTimeout 和 setInterval 🎯
    使用 setTimeout 和 setInterval 安排代码执行时间。
    示例:
    javascript 代码解读复制代码setTimeout(() => {
    console.log('2 秒后执行');
    }, 2000);

const intervalId = setInterval(() => {
console.log('每 3 秒执行一次');
}, 3000);

// 清除定时器
clearInterval(intervalId);

  1. 字符串方法:includes()、startsWith()、endsWith() 📜
    使用现代字符串方法执行常见的字符串操作。
    示例:
    javascript 代码解读复制代码const str = 'Hello, World!';

console.log(str.includes('World')); // true
console.log(str.startsWith('Hello')); // true
console.log(str.endsWith('!')); // true

  1. 高效使用 console 进行调试 🛠️
    利用各种 console 方法进行更有效的调试。
    示例:
    javascript 代码解读复制代码console.log('普通日志');
    console.warn('这是一个警告');
    console.error('这是一个错误');
    console.table([{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }]);
    console.group('分组');
    console.log('消息 1');
    console.log('消息 2');
    console.groupEnd();

掌握这些 JavaScript 技巧,可以帮你写出更简洁、更高效的代码,让你的编程之路更加顺畅! ✨

相关文章
|
6月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
8月前
|
JavaScript 前端开发 算法
流量分发代码实战|学会用JS控制用户访问路径
流量分发工具(Traffic Distributor),又称跳转器或负载均衡器,可通过JavaScript按预设规则将用户随机引导至不同网站,适用于SEO优化、广告投放、A/B测试等场景。本文分享一段不到百行的JS代码,实现智能、隐蔽的流量控制,并附完整示例与算法解析。
218 1
|
9月前
|
JavaScript 前端开发
怀孕b超单子在线制作,p图一键生成怀孕,JS代码装逼娱乐
模拟B超单的视觉效果,包含随机生成的胎儿图像、医疗文本信息和医院标志。请注意这仅用于前端开发学习
|
11月前
|
存储 JavaScript 前端开发
在NodeJS中使用npm包进行JS代码的混淆加密
总的来说,使用“javascript-obfuscator”包可以帮助我们在Node.js中轻松地混淆JavaScript代码。通过合理的配置,我们可以使混淆后的代码更难以理解,从而提高代码的保密性。
1056 9
|
9月前
|
JavaScript
JS代码的一些常用优化写法
JS代码的一些常用优化写法
157 0
|
12月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
822 11
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
717 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
482 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
12月前
|
JavaScript 前端开发 算法
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
12月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~