iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JavaScript优化技术都有哪些
  • 894
分享到

JavaScript优化技术都有哪些

2024-04-02 19:04:59 894人浏览 八月长安
摘要

本篇文章为大家展示了javascript优化技术都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。开发人员的生活总是在学习新事物,并且跟上变化的难度不应该比现在

本篇文章为大家展示了javascript优化技术都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

开发人员的生活总是在学习新事物,并且跟上变化的难度不应该比现在已经难,我的动机是介绍所有JavaScript最佳实践,例如速记和功能,我们作为前端开发人员必须知道这些使我们的生活在2021年变得更加轻松。

您可能已经进行了很长时间的JavaScript开发,但是有时您可能没有使用不需要解决或编写一些额外代码即可解决问题的最新功能。这些技术可以帮助您编写干净且优化的JavaScript代码。此外,这些主题可以帮助您为2021年的JavaScript采访做好准备。

在这里,我将提供一个新系列,介绍速记技术,这些速记技术可帮助您编写更干净和优化的JavaScript代码。

1.如果有多个条件

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

//longhand if (x === 'abc' || x === 'def' || x === 'ghi' || x ==='jkl') {     //logic } //shorthand if (['abc', 'def', 'ghi', 'jkl'].includes(x)) {    //logic }

2.If true … else 简写

当我们具有不包含更大逻辑的if-else条件时,这是一个更大的捷径。我们可以简单地使用三元运算符来实现该速记。

// Longhand let test: boolean; if (x > 100) {     test = true; } else {     test = false; } // Shorthand let test = (x > 10) ? true : false; //or we can use directly let test = x > 10; console.log(test);

当我们有嵌套条件时,我们可以采用这种方式。

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

3.声明变量

当我们要声明两个具有共同值或共同类型的变量时,可以使用此简写形式。

//Longhand  let test1; let test2 = 1; //Shorthand  let test1, test2 = 1;

4.空,未定义,空检查

当我们确实创建新变量时,有时我们想检查为其值引用的变量是否为null或未定义。JavaScript确实具有实现这些功能的非常好的捷径。

// Longhand if (test1 !== null || test1 !== undefined || test1 !== '') {     let test2 = test1; } // Shorthand let test2 = test1 || '';

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

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

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

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

正常值检查

let test1 = 'test',     test2 = test1 || ''; console.log(test2); // output: 'test'

(奖金:现在我们可以对主题4,5和6使用??运算符)

空位合并运算符

空合并运算符??如果左侧为null或未定义,则返回右侧的值。默认情况下,它将返回左侧的值。

const test= null ?? 'default'; console.log(test); // expected output: "default"const test1 = 0 ?? 2; console.log(test1); // expected output: 0

7.给多个变量赋值

当我们处理多个变量并希望将不同的值分配给不同的变量时,此速记技术非常有用。

//Longhand  let test1, test2, test3; test1 = 1; test2 = 2; test3 = 3; //Shorthand  let [test1, test2, test3] = [1, 2, 3];

8.赋值运算符的简写

我们在编程中处理很多算术运算符。这是将运算符分配给JavaScript变量的有用技术之一。

// Longhand test1 = test1 + 1; test2 = test2 - 1; test3 = test3 * 20; // Shorthand test1++; test2--; test3 *= 20;

9.如果存在速记

这是我们大家都在使用的常用速记之一,但仍然值得一提。

// Longhand if (test1 === true)  // Shorthand if (test1)

注意:如果test1有任何值,它将在if循环后进入逻辑,该运算符通常用于null或未定义的检查。

10.多个条件的AND(&&)运算符

如果仅在变量为true的情况下才调用函数,则可以使用&&运算符。

//Longhand  if (test1) {  callMethod();  }  //Shorthand  test1 && callMethod();

11. foreach循环速记

这是迭代的常用速记技术之一。

// Longhand for (var i = 0; i < testData.length; i++)  // Shorthand 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); // logs: test[0] = 11, test[1] = 24, test[2] = 32

12.比较返回值

我们也可以在return语句中使用比较。它将避免我们的5行代码,并将它们减少到1行。

// Longhand 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); } // Shorthand function checkReturn() {     return test || callMe('test'); }

13.箭头函数

//Longhand  function add(a, b) {     return a + b;  }  //Shorthand  const add = (a, b) => a + b;

更多示例。

function callMe(name) {   console.log('Hello', name); } callMe = name => console.log('Hello', name);

14.短函数调用

我们可以使用三元运算符来实现这些功能。

// Longhand function test1() {   console.log('test1'); }; function test2() {   console.log('test2'); }; var test3 = 1; if (test3 == 1) {   test1(); } else {   test2(); } // Shorthand (test3 === 1? test1:test2)();

15.Switch速记

我们可以将条件保存在键值对象中,并可以根据条件使用。

// Longhand switch (data) {   case 1:     test1();   break;    case 2:     test2();   break;    case 3:     test();   break;   // And so on... }  // Shorthand var data = {   1: test1,   2: test2,   3: test };  data[something] && data[something]();

16.隐式返回速记

使用箭头功能,我们可以直接返回值,而不必编写return语句。

//longhand function calculate(diameter) {   return Math.PI * diameter } //shorthand calculate = diameter => (   Math.PI * diameter; )

17.小数基指数

// Longhand for (var i = 0; i < 10000; i++) { ... }  // Shorthand for (var i = 0; i < 1e4; i++) {

18.默认参数值

//Longhand function add(test1, test2) {   if (test1 === undefined)     test1 = 1;   if (test2 === undefined)     test2 = 2;   return test1 + test2; } //shorthand add = (test1 = 1, test2 = 2) => (test1 + test2); add() //output: 3

19.点差运算符速记

//longhand // joining arrays using concat const data = [1, 2, 3]; const test = [4 ,5 , 6].concat(data); //shorthand // joining arrays const data = [1, 2, 3]; const test = [4 ,5 , 6, ...data]; console.log(test); // [ 4, 5, 6, 1, 2, 3]

对于克隆,我们也可以使用传播运算符。

//longhand  // cloning arrays const test1 = [1, 2, 3]; const test2 = test1.slice() //shorthand  // cloning arrays const test1 = [1, 2, 3]; const test2 = [...test1];

20.模板文字

如果您厌倦了在单个字符串中使用+来连接多个变量,那么这种速记方式将消除您的头痛。

//longhand const welcome = 'Hi ' + test1 + ' ' + test2 + '.' //shorthand const welcome = `Hi ${test1} ${test2}`;

21.多行字符串速记

当我们在代码中处理多行字符串时,可以使用以下功能:

//longhand const data = 'abc abc abc abc abc abc\n\t'     + 'test test,test test test test\n\t' //shorthand const data = `abc abc abc abc abc abc          test test,test test test test`

22.对象属性分配

let test1 = 'a';  let test2 = 'b'; //Longhand  let obj = {test1: test1, test2: test2};  //Shorthand  let obj = {test1, test2};

23.字符串成数字

//Longhand  let test1 = parseInt('123');  let test2 = parseFloat('12.3');  //Shorthand  let test1 = +'123';  let test2 = +'12.3';

24.分配速记

//longhand const test1 = this.data.test1; const test2 = this.data.test2; const test2 = this.data.test3; //shorthand const { test1, test2, test3 } = this.data;

25. Array.find的简写

当我们确实有一个对象数组并且我们想要根据对象属性查找特定对象时,find方法确实很有用。

const data = [{         type: 'test1',         name: 'abc'     },     {         type: 'test2',         name: 'cde'     },     {         type: 'test1',         name: 'fgh'     }, ] function findtest1(name) {     for (let i = 0; i < data.length; ++i) {         if (data[i].type === 'test1' && data[i].name === name) {             return data[i];         }     } } //Shorthand filteredData = data.find(data => data.type === 'test1' && data.name === 'fgh'); console.log(filteredData); // { type: 'test1', name: 'fgh' }

26.查找条件速记

如果我们有代码来检查类型,并且基于类型需要调用不同的方法,我们可以选择使用多个else if或进行切换,但是如果我们的速记比这更好呢?

// Longhand 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); } // Shorthand var types = {   test1: test1,   test2: test2,   test3: test3,   test4: test4 };   var func = types[type]; (!func) && throw new Error('Invalid value ' + type); func();

27.速记按位索引

当我们迭代数组以查找特定值时,我们确实使用indexOf()方法,如果我们找到更好的方法呢?让我们看看这个例子。

//longhand if(arr.indexOf(item) > -1) { // item found  } if(arr.indexOf(item) === -1) { // item not found } //shorthand if(~arr.indexOf(item)) { // item found } if(!~arr.indexOf(item)) { // item not found }

按位(〜)运算符将返回非-1的真实值。取反就像做!〜一样简单。另外,我们也可以使用include()函数:

if (arr.includes(item)) {  // true if the item found }

28. Object.entries()

此功能有助于将对象转换为对象数组。

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

29. Object.values()

这也是ES8中引入的一项新功能,它执行与Object.entries()类似的功能,但没有关键部分:

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

30. Double Bitwise简写

(双重NOT按位运算符方法仅适用于32位整数)

// Longhand Math.floor(1.9) === 1 // true  // Shorthand ~~1.9 === 1 // true

31.重复一个字符串多次

要一次又一次地重复相同的字符,我们可以使用for循环并将它们添加到同一循环中,但是如果我们有一个简写方法呢?

//longhand  let test = '';  for(let i = 0; i < 5; i ++) {    test += 'test ';  }  console.log(str); // test test test test test  //shorthand  'test '.repeat(5);

32.在数组中查找最大值和最小值

const arr = [1, 2, 3];  Math.max(&hellip;arr); // 3 Math.min(&hellip;arr); // 1

33.从字符串中获取字符

let str = 'abc'; //Longhand  str.charAt(2); // c //Shorthand  Note: If we know the index of the array then we can directly use index insted of character.If we are not sure about index it can throw undefined str[2]; // c

34.功率速记

数学指数幂函数的简写:

//longhand Math.pow(2,3); // 8 //shorthand 2**3 // 8

上述内容就是JavaScript优化技术都有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网node.js频道。

--结束END--

本文标题: JavaScript优化技术都有哪些

本文链接: https://www.lsjlt.com/news/82230.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript优化技术都有哪些
    本篇文章为大家展示了JavaScript优化技术都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。开发人员的生活总是在学习新事物,并且跟上变化的难度不应该比现在...
    99+
    2024-04-02
  • JavaScript优化技巧都有哪些
    JavaScript优化技巧都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。作为开发人员,我们一直在寻找让我们的代码更快更好的方法。但在...
    99+
    2024-04-02
  • JavaScript简写优化技术有哪些
    JavaScript简写优化技术有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。开发者的生活总是在学习新的东西,跟上变化不应该比现在更...
    99+
    2024-04-02
  • JavaScript优化技巧有哪些
    这篇文章主要介绍“JavaScript优化技巧有哪些”,在日常操作中,相信很多人在JavaScript优化技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaSc...
    99+
    2024-04-02
  • PHP 有哪些内存优化技术
    介绍 PHP 是一种流行的 Web 开发编程语言,但由于其动态特性和垃圾收集过程,它可能容易出现高内存使用率。 但是,我们可以使用多种技术来优化内存使用并提高 PHP 应用程序的性能。 在本文中...
    99+
    2024-02-27
  • JavaScript性能优化技巧有哪些
    这篇文章主要为大家展示了“JavaScript性能优化技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript性能优化技巧有哪些”这篇文章吧...
    99+
    2024-04-02
  • JavaScript代码优化技巧有哪些
    这篇文章主要介绍“JavaScript代码优化技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript代码优化技巧有哪些”文章能帮助大家解决问题。1. 使用扩展运算符解构对象和数...
    99+
    2023-07-05
  • JavaScript开发技术有哪些
    本篇内容介绍了“JavaScript开发技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、使用正...
    99+
    2024-04-02
  • 先进的C++性能优化技术有哪些?
    c++++ 中的性能优化技术包括:profiling 以识别瓶颈,提高数组布局性能。内存管理使用智能指针和内存池,提高分配和释放效率。并发性利用多线程和原子操作,提升大型应用程序吞吐量。...
    99+
    2024-05-08
    c++ 性能优化 排列
  • 实用的JavaScript优化小技巧有哪些
    这篇文章主要为大家展示了“实用的JavaScript优化小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“实用的JavaScript优化小技巧有哪些”这...
    99+
    2024-04-02
  • MySQL优化工具AWR都有哪些
    本篇文章为大家展示了MySQL优化工具AWR都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对于正在运行的mysql,性能如何,...
    99+
    2024-04-02
  • MySQL优化思想都有哪些呢
    本篇文章为大家展示了MySQL优化思想都有哪些呢,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。优化一览图优化笔者将优化分为了两大类:软优化和硬优化。软优化一般是操作...
    99+
    2024-04-02
  • JavaScript数组精简技巧都有哪些
    今天就跟大家聊聊有关JavaScript数组精简技巧都有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数组是 JS 很常见的一种数据结构,咱们在...
    99+
    2024-04-02
  • Docker与虚拟化技术相比有哪些优势
    起动速度快:Docker容器的启动速度比虚拟机快得多,因为Docker容器共享宿主机的操作系统内核,无需启动整个操作系统。 ...
    99+
    2024-05-07
    Docker
  • Hadoop技术优缺点有哪些
    本篇内容介绍了“Hadoop技术优缺点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Hadoop技术优点  (1)Hadoop具有...
    99+
    2023-06-02
  • Ajax技术有哪些优缺点
    这篇文章主要讲解了“Ajax技术有哪些优缺点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ajax技术有哪些优缺点”吧!ajax:Asynchronous ...
    99+
    2024-04-02
  • Oracle数据库中的SQL优化技术有哪些
    使用索引:通过合适地创建索引,可以加快数据库查询的速度。需要根据查询的字段和条件来选择合适的索引。 优化查询语句:尽量避免使...
    99+
    2024-04-09
    Oracle SQL
  • 服务器虚拟化技术的优点有哪些
    1. 节省硬件成本:通过虚拟化技术,可以在一台物理服务器上运行多个虚拟机,从而节省硬件成本。2. 提高资源利用率:虚拟化技术可以将物...
    99+
    2023-06-07
    服务器虚拟化技术 服务器
  • JavaScript条件语句优化的技巧有哪些
    这篇文章主要介绍了JavaScript条件语句优化的技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript条件语句优化的技巧有哪些文章都会有所收获,下面我们一起来看看吧。1、Array.i...
    99+
    2023-07-02
  • Golang 技术性能优化注意事项有哪些?
    为了获得最佳 go 性能,需要考虑以下事项:避免过度内存分配。使用局部变量。优化 goroutine 使用。启用 gc 并发标记。使用性能分析工具。 Go 性能优化注意事项 Go 语言...
    99+
    2024-05-11
    性能 优化 golang access 垃圾回收器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作