您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

17 个你需要知道的 JavaScript 优化技巧

时间:2024-04-03 14:04:37  来源:微信公众号  作者:前端新世界

你可能一直在使用JAVAScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。

作为前端开发人员,我们必须了解这些,以便让我们的工作变得更轻松。下面就是2021年你必须知道的JavaScript编码技巧,包含普通写法和简写方法供大家借鉴哦。

1. 多个条件的判断

我们可以在数组中存储多个值,并且我们可以使用数组的includes方法。

//普通写法
if (x === 'abc' || x === 'def' || x === 'ghi' || x ==='jkl') {
//logic
}
//简写方法
if (['abc', 'def', 'ghi', 'jkl'].includes(x)) {
   //logic
}

2. If true ... else简写方法

if-else条件的内部不包含更大的逻辑时,简写方法会更好使。我们可以直接使用三元运算符。

// 普通方法
let test= boolean;
if (x > 100) {
test = true;
} else {
test = false;
}
// 简写方法
let test = (x > 10) ? true : false;
//or we can simply use
let test = x > 10;
console.log(test);

嵌套条件后,我们保留如下所示的内容:

let x = 300,
let test2 = (x > 100) ? 'greater 100' : (x < 50) ? 'less 50' : 'between 50 and 100';
console.log(test2); // "greater than 100"

3. Null、Undefined、空检查

当我们创建新的变量时,有时要检查我们为值引用的变量是否不为nullUndefined。JavaScript有一个非常好的简写方法来实现这些功能。

// 普通方法
if (first !== null || first !== undefined || first !== '') {
let second = first;
}
// 简写方法
let second = first|| '';

4. 空值检查和分配默认值

let first = null,
let second = first || '';
console.log("null check", test2); // output will be ""

5. 未定义值检查和分配默认值

let first= undefined,
let second = first || '';
console.log("undefined check", test2); // output will be ""

6. foreach循环简写

下面是关于迭代的简写方法

// 普通方法
for (var i = 0; i < testData.length; i++)
// 简写方法
for (let i in testData) or  for (let i of testData)

每个变量的数组

function testData(element, index, array) {
  console.log('test[' + index + '] = ' + element);
}
[11, 24, 32].forEach(testData);
// prints: test[0] = 11, test[1] = 24, test[2] = 32

7. 比较返回

return语句中使用比较可以将代码从5行减少到1行。

// 普通方法
let test;
function checkReturn() {
    if (!(test === undefined)) {
        return test;
    } else {
        return callMe('test');
}
}
var data = checkReturn();
console.log(data); //output test
function callMe(val) {
console.log(val);
}
// 简写方法
function checkReturn() {
return test || callMe('test');
}

8. 短函数调用

我们可以使用三元运算符来实现这类函数。

// 普通方法
function test1() {
  console.log('test1');
};
function test2() {
  console.log('test2');
};
var test3 = 1;
if (test3 == 1) {
  test1();
} else {
  test2();
}
// 简写方法
(test3 === 1? test1:test2)();

9.switch代码块简写

我们可以将条件保存在key-value对象中,然后可以根据条件使用。

// 普通方法
switch (data) {
  case 1:
    test1();
  break;
 
  case 2:
    test2();
  break;
 
  case 3:
    test();
  break;
  // And so on...
}
// 简写方法
var data = {
  1: test1,
  2: test2,
  3: test};
data[anything] && data[anything]();

10. 多行字符串简写方法

当我们在代码中处理多行字符串时,可以这样做:

// 普通方法
const data = 'abc abc abc abc abc abcnt'
+ 'test test,test test test testnt'
// 简写方法
const data = `abc abc abc abc abc abc
         test test,test test test test`

11. 隐式返回简写方法

通过使用箭头函数,我们可以直接返回值,而无需编写return语句。

// 普通方法
function getArea(diameter) {
  return Math.PI * diameter
}
// 简写方法
getArea = diameter => (
  Math.PI * diameter;
)

12.查找条件简写方法

如果我们有代码来检查类型并根据类型需要调用不同的方法,那么我们往往或选择使用多个else if或选择使用switch,但是如果我们有比这更好的简写方法呢?

// 普通方法
if (type === 'test1') {
  test1();
}
else if (type === 'test2') {
  test2();
}
else if (type === 'test3') {
  test3();
}
else if (type === 'test4') {
  test4();
} else {
  throw new Error('Invalid value ' + type);
}
// 简写方法
var types = {
  test1: test1,
  test2: test2,
  test3: test3,
  test4: test4
};
var func = types[type];
(!func) && throw new Error('Invalid value ' + type); func();

13. Object.entries()

该特性可以将一个对象转换成一个对象数组。

const data = { test1: 'abc', test2: 'cde', test3: 'efg' };
const arr = Object.entries(data);
console.log(arr);/** Output:
[ [ 'test1', 'abc' ],
  [ 'test2', 'cde' ],
  [ 'test3', 'efg' ]
]
**/

14. Object.values()

这也是ES8中引入的一个新功能,执行函数类似于Object.entries(),但没有key部分:

const data = { test1: 'abc', test2: 'cde' };
const arr = Object.values(data);
console.log(arr);
/** Output:
[ 'abc', 'cde']
**/

15. 多次重复一个字符串

为了多次重复相同的字符,我们可以使用for循环并将它们添加到同一个循环中,如何简写呢?

//普通方法 
let test = ''; 
for(let i = 0; i < 5; i ++) { 
  test += 'test '; 
} 
console.log(str); // test test test test test 
//简写方法 
'test '.repeat(5);

16. 幂的简写方法

数学指数幂函数的简写方法如下:

//普通方法 
Math.pow(2,3); // 8
//简写方法 
2**3 // 8

17. 数字分隔符

你现在只需使用 _ 即可轻松分隔数字。这将使处理大量数据变得更加轻松。

//old syntax
let number = 98234567
//new syntax
let number = 98_234_567

如果你想使用JavaScript最新版本(ES2021/ES12)的最新功能,请检查以下内容:

1.replaceAll():返回一个新字符串,其中所有匹配的模式都被新的替换词替换。

2.Promise.any():需要一个可迭代的Promise对象,当一个Promise完成时,返回一个带有值的Promise。

3.weakref:此对象持有对另一个对象的弱引用,不阻止该对象被垃圾收集。

4.FinalizationRegistry:让你在对象被垃圾回收时请求回调。

5.私有方法:方法和访问器的修饰符:私有方法可以用#声明。

6.逻辑运算符:&&||运算符。

7.Intl.ListFormat:此对象启用对语言敏感的列表格式。

8.Intl.DateTimeFormat:该对象启用对语言敏感的日期和时间格式。

希望这篇教程能对大家有所帮助。祝编码快乐!



Tags:JavaScript   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除。
▌相关推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  Search: JavaScript  点击:(0)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践&mdash;&mdash;如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  Search: JavaScript  点击:(21)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11  Search: JavaScript  点击:(96)  评论:(0)  加入收藏
JavaScript 真的是在 10 天内完成的吗?
起初网景公司用了十天时间创建了一个 Java,后来它成为事实上的 Web 标准,并横扫各大编程语言榜单成为开发者最受欢迎的语言之一。近日,有开发者对 Java 的开发周期提出了质疑,以...【详细内容】
2024-01-03  Search: JavaScript  点击:(81)  评论:(0)  加入收藏
创建一个双模式跨运行时的 JavaScript 包,你学会了吗
本文将指导你发布双模式、跨运行时的 JavaScript 包。了解如何创建与 ESM 和 CommonJS 以及 Node.js、Deno 和浏览器等不同运行时兼容的库。随着 JavaScript 开发的不断发展...【详细内容】
2023-12-27  Search: JavaScript  点击:(146)  评论:(0)  加入收藏
五种在 JavaScript 中创建对象的方法
在 JavaScript 中,对象是多功能工具,可以通过多种方式创建,每种方式适合不同的场景。了解何时使用每种方法是编写高效且可维护的 JavaScript 代码的关键。让我们探讨在 JavaScr...【详细内容】
2023-11-23  Search: JavaScript  点击:(221)  评论:(0)  加入收藏
GitHub:程序员正积极使用 AI 编程、JavaScript 语言依然最流行
IT之家 11 月 20 日消息,GitHub 发布了 2023 年度 Octoverse 开源状态报告,其中主要强调了 AI 在开发过程中的作用,并围绕云和 Git 的开源活动展开。官方介绍称,今年的三大趋势...【详细内容】
2023-11-20  Search: JavaScript  点击:(170)  评论:(0)  加入收藏
通过示例解释所有 JavaScript 数组方法
作为一名程序员,我们的工作是写有效的代码,但是仅仅写有效的代码,这还不够。如果想成为优秀的程序员,我们还需要编写可维护和可扩展的代码。JavaScript为我们提供了很多可以用来...【详细内容】
2023-11-15  Search: JavaScript  点击:(262)  评论:(0)  加入收藏
JavaScript 地位不保!WasmGC 将成为下一个“网红”?
整理 | 太冷不穿格子衫 出品 | 51CTO技术栈(微信号:blog51cto)早在 2017 年,主流浏览器都已经支持 WebAssembly。随着 WebAssembly 的蓬勃发展,各种编程语言也在增加对它的支持。...【详细内容】
2023-11-13  Search: JavaScript  点击:(214)  评论:(0)  加入收藏
Jest:目前最广泛使用的前端 JavaScript 测试框架
Jest 是一个简单易用的 JavaScript 测试框架。最初由 Meta 公司团队维护。2022 年 5 月,Meta 公司正式将自己的开源项目Jest 移交给 OpenJS Foundation[1],这表示 Jest 由公司...【详细内容】
2023-11-08  Search: JavaScript  点击:(340)  评论:(0)  加入收藏
▌简易百科推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  前端新世界  微信公众号  Tags:JavaScript   点击:(0)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践&mdash;&mdash;如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  前端新世界  微信公众号  Tags:JavaScript   点击:(21)  评论:(0)  加入收藏
又出新JS运行时了!JS运行时大盘点
Node.js是基于Google V8引擎的JavaScript运行时,以非阻塞I/O和事件驱动架构为特色,实现全栈开发。它跨平台且拥有丰富的生态系统,但也面临安全性、TypeScript支持和性能等挑战...【详细内容】
2024-03-21  前端充电宝  微信公众号  Tags:JS   点击:(19)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  前端历险记  微信公众号  Tags:JavaScript   点击:(15)  评论:(0)  加入收藏
面向AI工程的五大JavaScript工具
令许多人惊讶的是,一向在Web开发领域中大放异彩的JavaScript在开发使用大语言模型(LLM)的应用程序方面同样大有价值。我们在本文中将介绍面向AI工程的五大工具,并为希望将LLM...【详细内容】
2024-02-06    51CTO  Tags:JavaScript   点击:(49)  评论:(0)  加入收藏
JS小知识,使用这6个小技巧,避免过多的使用 if 语句
最近在重构我的代码时,我注意到早期的代码使用了太多的 if 语句,达到了我以前从未见过的程度。这就是为什么我认为分享这些可以帮助我们避免使用过多 if 语句的简单技巧很重要...【详细内容】
2024-01-30  前端达人  今日头条  Tags:JS   点击:(53)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  南城大前端  微信公众号  Tags:JavaScript   点击:(64)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11    CSDN  Tags:JavaScript   点击:(96)  评论:(0)  加入收藏
React的核心概念
React是一个开源JavaScript库,用于构建用户界面。它由Facebook开发并维护,已成为构建Web和移动应用程序的流行选择。React的主要特点是组件化架构,它使开发人员能够将应用程序...【详细内容】
2024-01-09    简易百科  Tags:React   点击:(92)  评论:(0)  加入收藏
一篇文章搞懂TypeScript
TypeScript 是 JavaScript 的超集,一方面给动态类型的 js 增加了类型校验,另一方面扩展了 js 的各种功能。原始数据类型 字符串 数值 布尔 null undefined Symbol BigIntlet s...【详细内容】
2024-01-08  秘密菜单  今日头条  Tags:TypeScript   点击:(71)  评论:(0)  加入收藏
站内最新
站内热门
站内头条