JavaScript ES6 新特性语法学习(2)- 扩展运算符与解构赋值

103 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天 点击查看活动详情

前言

昨天回顾了一下JavaScript的历史。学习了ES6最常见的两个定义变量的方法,感觉学到了很多,今天来学习ES6 有一个让我觉得非常有意思的语法:扩展运算符和解构赋值

接下来打算使用node.js实际运行一下这个新特性语法

扩展运算符

非常简单,使用是三个点来展开数组或者对象,直接在在浏览器里面试一下:

扩展数组

image.png

扩展字符串:

image.png

参与运算

新建一个test.js 使用node 运行这个js文件测试一下

image.png

当做函数的参数

这里是往函数传递实参的时候,做一个分解参数

image.png

扩展运算符扩展表达式

使用扩展运算符打开表达式的结果: image.png

深拷贝数组

先看下浅拷贝:

const a = [1,2]
const b = a;
a[0] = 3 
console.log(b)  //[3,2]

使用后扩展运算符深拷贝,这就简单了很多:

const a = [1,2]
const b = [...a];
a[0] = 3 
console.log(b)  //[1,2]

解构赋值

结构赋值就是扩展运算符更高级用法,对数组或者对象进行一一匹配,然后对其中的变量进行赋值,简化了代码语法,先看看最简单的例子:

let [a, b, c] = [1, 2, 3]
console.log(a, b, c)  //1,2,3

在其他语言中也有类似的操作,我最早接触的是Python就有这个操作,可以批量给变量赋值

除了数组还可以对对象进行结构赋值:

let { a, b: [] } = { a: 1, b: [2, 3] }
console.log({a})  //  { a: 1 }

获取函数返回的多个值

function res()
{
    return {a:1,b: 2,c: 3};
}

let {a, b, c}  = res()
console.log(a, b, c)  // 1 2 3

遍历Map

Map这个结构在JavaScript里面还是比较少见的:

image.png

总结

今天就实践了一下ES6中的扩展运算符与解构赋值的简单的用法,有了一些基本映象,这两个特性简化了代码逻辑,还算比较好了解,使用...来分解数组或者对象还算比较另类,哈哈。