您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

24个实用JavaScript

51自学网 2022-02-21 13:35:53
  javascript

1. 初始化数组

如果想要初始化一个指定长度的一维数组,并指定默认值,可以这样:

const array = Array(6).fill(''); // ['', '', '', '', '', '']

如果想要初始化一个指定长度的二维数组,并指定默认值,可以这样:

const matrix = Array(6).fill(0).map(() => Array(5).fill(0)); // [[0, 0, 0, 0, 0],//  [0, 0, 0, 0, 0],//  [0, 0, 0, 0, 0],//  [0, 0, 0, 0, 0],//  [0, 0, 0, 0, 0],//  [0, 0, 0, 0, 0]]

2. 数组求和、求最大值、最小值

const array  = [5,4,7,8,9,2];

数组求和:

array.reduce((a,b) => a+b);

数组最大值:

array.reduce((a,b) => a > b ? a : b);
Math.max(...array)

数组最小值:

array.reduce((a,b) => a < b ? a : b);Math.min(...array)

使用数组的reduce方法可以解决很多数组的求值问题。

3. 过滤错误值

如果想过滤数组中的false、0、null、undefined等值,可以这样:

const array = [1, 0, undefined, 6, 7, '', false];array.filter(Boolean);// [1, 6, 7]

4. 使用逻辑运算符

如果有一段这样的代码:

if(a > 10) {    doSomething(a)}

可以使用逻辑运算符来改写:

a > 10 && doSomething(a)

这样写就会简洁很多,如果逻辑与&&操作符前面的值为假,就会发生短路操作,直接结束这一句的执行;如果为真,就会继续执行&&后面的代码,并返回后面代码的返回值。使用这种方式可以减少很多if...else判断。

5. 判断简化

如果有下面的这样的一个判断:

if(a === undefined || a === 10 || a=== 15 || a === null) {    //...}

就可以使用数组来简化这个判断逻辑:

if([undefined, 10, 15, null].includes(a)) {    //...}

这样代码就会简洁很多,并且便于扩展,如果还有需要等于a的判断,直接在数组中添加即可。

6. 清空数组

如果想要清空一个数组,可以将数组的length置于0:

let array = ["A", "B", "C", "D", "E", "F"]array.length = 0 console.log(array)  // []

7. 计算代码性能

可以使用以下操作来计算代码的性能:

const startTime = performance.now(); // 某些程序for(let i = 0; i < 1000; i++) {    console.log(i)}const endTime = performance.now();const totaltime = endTime - startTime;console.log(totaltime); // 30.299999952316284

8. 拼接数组

如果我们想要拼接几个数组,可以使用扩展运算符:

const start = [1, 2] const end = [5, 6, 7] const numbers = [9, ...start, ...end, 8] // [9, 1, 2, 5, 6, 7 , 8]

或者使用数组的concat()方法:

const start = [1, 2, 3, 4] const end = [5, 6, 7] start.concat(end); // [1, 2, 3, 4, 5, 6, 7]

但是使用concat()方法时,如果需要合并的数组很大,那么concat() 函数会在创建单独的新数组时消耗大量内存。这时可以使用以下方法来实现数组的合并:

Array.push.apply(start, end)

通过这种方式就能在很大程度上较少内存的使用。

9. 对象验证方式

如果我们有一个这样的对象:

const parent = {    child: {      child1: {        child2: {          key: 10      }    }  }}

很多时候我们会这样去写,避免某一层级不存在导致报错:

parent && parent.child && parent.child.child1 && parent.child.child1.child2

这样代码看起来就会很臃肿,可以使用JavaScript的可选链运算符:

parent?.child?.child1?.child2

这样实现和效果和上面的一大长串是一样的。
下载地址:
TypeScript联合类型,交叉类型和类型保护
TypeScript&nbsp;泛型的使用

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。