【写在前面】
应一些粉丝的要求,整理一些ES6相关的文章,因此借这个岁末之际,给大家整理一篇ES6的相关的博客,不管是面试还是在实际的编程上,我们都常提到ES6这个词,可能前几年比较热门,希望大家能够通过这一篇文章就能知道ES6的整体概念及新语法的使用。
文章目录
- 1、ES6是啥
- 2、ES6新语法(部分)
- 2.1 变量常量作用域let和const
- A、let和var区别实例
- B、为啥要用let取代var
- C、let和const如何选择
- D、const字符串(动态与静态)
- E、const解构赋值
- E1 数组解构(定义常量)
- E2 函数解构
- E3 控制台函数解构实例应用
- F、const定义对象
- F1 对象定义逗号的规范
- F2 getKey动态添加对象属性
- G、const操作数组
- G1 扩展运算符 ... 实现拷贝
- G2 Array.from()转换成数组
- 3、ES6的此篇新属性总结(待续)
- 4、邀您入皇榜
1、ES6是啥
ES表示的是ECMAScript,6代表的是6.0版本,其实ECMAScript这个概念好早之前就有了,有个标准化组织ECMA,开发的一套语言想要成为一个国际标准需要提交上去审核才能成功,为啥你定义变量能统一用var,为啥输出可以用console.log(),这些都是语法标准,需要得到全球公认,你就得去专门的机构审批。
一开始ECMA就设定了一套ECMAScript标准语言,主要是针对浏览器脚本的,最早版本叫ECMAScript1.0,其实这个标准说到底就是为JavaScript语言而定制的,因版权商标问题所以没有叫JavaScript1.0啥的,随着后续语言的发展与迭代,之前定制的一些标准也不再适用于后续大业务的需求了,因此那套标准体系也在不断的更新,从ES1到现在ES13,其中有好多版本都是不稳定的,好多人也就没在乎了,当然ES6也算是一次大版本的更新,另外也受大家喜爱,所以才被大家所推崇与学习。
下面着重给大家罗列一些ES6新语法,通过实例给大家展示她所带来的便捷性与实用性。
2、ES6新语法(部分)
2.1 变量常量作用域let和const
之前我们最常用的声明变量的命令是var,ES6后续提出了新的声明变量命令let 和const
A、let和var区别实例
let 虽然可以取代 var,但他们的语义相同,但是存在作用域不同;下面例子就可以提现出来啦:
从输出结果不难发现var定义的是全局的概念,但是let定义的是有局部作用域的,只能在if里面使用,此处为啥我更换变量名,因为你在控制台测试会有缓存记录。
B、为啥要用let取代var
我们变量声明有个规则,先声明后使用,但是我发现先使用后声明在var是可以用的,只是输出undefined而已,程序是能通的,但是let声明这变量就是会报错。那么就会有人问啦,都弱语言了在乎那么多干嘛,那么这样说的话我们也没必要定制这些规则了,既有规则我们应该做好规范。规则规则就是养成好的规范准则(个人理解)
C、let和const如何选择
const是定义常量而非变量的概念,不能随意修改其值。
在她们两者之间首选const,尤其是在全局变量的使用。优点体现在:便于阅读、有利于分布式运算、提升程序运行效率。
下面命名优化排名如下:
D、const字符串(动态与静态)
定义静态和动态字符串,单引号和反引号的应用
因为是常量,所以始终是不给修改的,但是要赋值的话,用反引号是最合适的,每种方式都行,但是反引号最优,尽量摒弃双引号,如下所示:
E、const解构赋值
解构赋值是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值 解构赋值,左右结构必须一样。如下所示:
E1 数组解构(定义常量)
E2 函数解构
E3 控制台函数解构实例应用
当函数返回的是多个值的时候,返回时候建议用对象解构的方式,这样也又便于获取返回值,如下所示:
F、const定义对象
F1 对象定义逗号的规范
定义对象时,如果单行的话最后一个对象不要加逗号,多行的话最后一个加逗号,如下所示:
定义好的对象不要随意更改,但是迫不得已需要添加新对象属性的话,需要用Object.assign方法,如下所示应用
F2 getKey动态添加对象属性
如果对象属性名是动态的,在声明对象时候可以使用对象表达式进行定义
【注意】此处切记我们要事先声明好getKey,不然会出现报错Uncaught ReferenceError: getKey is not defined的现象。
声明对象时候应做到能简尽简。如下所示的对象属性名和函数;
G、const操作数组
G1 扩展运算符 … 实现拷贝
使用扩展运算符 (…)实现数组的拷贝,这个的拷贝既不是深拷贝也不是浅拷贝,只能说一半一半,因为第一层是深拷贝,第二层是浅拷贝。
应用实例如下:
别的不说,就这代码量的差距,看着右边的就舒服,给人的水准就很高的感觉。
G2 Array.from()转换成数组
对象(类似数组格式的)转化成数组,通过实现Array.from()函数
字符串转数组
Array.from()修改数组的值,其中里面可以包含两个参数。
3、ES6的此篇新属性总结(待续)
主要归纳为以下几点
A、声明变量常量命令let和const
B、静态字符串和动态字符串
C、解构赋值
D、对象定义规范及动态添加对象属性
E、扩展运算符(…)实现数组拷贝
F、Array.form()实现数组转换与操作
4、邀您入皇榜
如果觉得这篇文章对您有帮助的话,想支持博主的可以上皇榜看看哟,皇榜点击此处进入