web学习笔记(三十五)ES6
时间:2024-04-18 09:35:28 来源:网络cs 作者:亙句 栏目:培训机构 阅读:
目录
1.ES6的相关概念(了解即可)
1.1ECMA和ECMAScript
1.2ECMAScript历史
1.3 为什么要学习 ES6
2. ES6新增语法
2.1let
2.2const关键字
2.3const、let、var三者的区别
3.解构
3.1解构的概念
3.2数组解构
3.2.1完全解构
3.2.2不完全解构
1.ES6的相关概念(了解即可)
1.1ECMA和ECMAScript
之前我们有了解过ECMA,即欧洲计算机制造商协会,这个协会在国际上有一定的影响力,所以当时网景公司选择将JavaScript的相关资料交给ECMA(欧洲计算机制造商协会)想要将其制定为行业通用规则(有点像我们现在的申请专利),而ECMAScript就是ECMA从网景公司提交的资料中提取出来的一部分知识,也就是JavaScript的核心语法。
1.2ECMAScript历史
TC39(Technical Committee 39)是推进 ECMAScript 发展的委员会。其会员都是公司(其中主要是浏览器厂商,有苹果、谷歌、微软、因特尔等)。TC39 定期召开会议,然后商讨如何更新ECMAScript的1问题。下面的表也不需要进行记忆,只需要知道在2015年6月份发布了ES6即可。
第1版 | 1997年 | 制定了语言的基本语法 |
第2版 | 1998年 | 较小改动 |
第3版 | 1999年 | 引入正则、异常处理、格式化输出等。IE开始支持 |
第4版 | 2007年 | 过于激进,未发布 |
第5版 | 2009年 | 引入严格模式、JSON,扩展对象、数组、原型、字符串、日期方法 |
第6版 | 2015年 | 模块化、面向对象语法、Promise、箭头函数、let、const、数组解构赋值等等。 |
第7版 | 2016年 | 幂运算符、数组扩展、Async/Await关键字 |
第8版 | 2017年 | Async/Await、字符串扩展 |
第9版 | 2018年 | 对象解构赋值、正则扩展 |
第10版 | 2019年 | 扩展对象、数组方法 |
1.3 为什么要学习 ES6
ES6 的版本变动内容最多,具有里程碑意义 ES6 加入许多新的语法特性,编程实现更简单、高效 ES6 是前端发展趋势,就业必备技能2. ES6新增语法
注意:ES6的语法相对比较严谨,所以在编写代码时一定要仔细,而且在每行代码结束后要加分号作为结束符。
2.1let
ES6中新增了用于声明变量的关键字let ,使用let声明的变量有几个特点:
let关键词不允许对同一个变量进行重复声明操作。let关键词有块级作用域,每一个花括号{}就是一个块级作用域.let关键词没有变量提升的概念。console.log(a); // 报错let a = 20;
let关键词有暂时性死区的特性(利用let声明的变量会绑定在这个块级作用域,不会受外界的影响)。 <script> let a = 20; { console.log(a); let a = 10; //02变量解构.html:27 Uncaught ReferenceError: Cannot access 'a' before initialization } </script>
let关键词同样适用于作用域链的概念,当在自身作用域找不到该变量的声明信息时,就会向上查找,直到找到最顶端,若还没有找到则进行报错的操作。let可以防止循环变量变成全局变量。 2.2const关键字
const通常用来声明常量或者是引用类型(数组、函数、对象、日期、正则)的数据。const有以下几点特点:
const关键子在声明时必须初始化。const关键字的值不允许修改,但当const用来声明一个数组时,单独修改数组中的某个元素不会报错,但直接将某个数组赋值给这个数组还是会报错。const关键字在声明时通常将标识符写为大写(推荐,但不是硬性要求)const关键字有块级作用域{}const关键字不允许重复声明同一变量。用const来声明一个对象类型的常量,就是传址赋值。而不可修改的是对象在内存中的地址,而不是对象本身。所以修改name并不是修改对象的内存地址,所以可以成功修改。声明对象类型时尽量使用const,非对象类型声明选择let,var可以用使用,但相对来说语法没有另外两个严谨,不推荐使用。
2.3const、let、var三者的区别
const和let没有变量提升的概念,在声明前进行输出操作会报错,而var有变量提升,在声明前输出的话会返回Undefined而不会报错。const和let有块级作用域和全局作用域的概念,每个{}就是一个块级作用域。,而var有全局作用域和局部作用域(函数作用域)的概念。const和let声明变量时变量名不可以重名,会报错。而var当发生变量重名时不会报错,只会覆盖前面给同名变量赋的值。const和let都有暂时性死区的概念,而var没有暂时性死区的概念。let和var声明的变量可以进行修改值的操作,而const不可以修改值(单独修改数组中的某个元素不会报错,但直接将某个数组赋值给这个数组还是会报错。)。let和var在声明变量时可以先声明再赋值,也可以直接进行变量的初始化操作,而const只能进行初始化操作。3.解构
3.1解构的概念
ES6中允许按照一定模式从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构。解构包括数组解构、字符串解构、变量解构、完全解构和不完全解构。
3.2数组解构
注意:解构时等号左右的模式相同。
3.2.1完全解构
(1)左边变量个数等于右边数组元素的个数
const F4=['小沈阳','刘能','赵四','宋小宝'] let [xiao,liu,zhao,song]=F4; console.log(xiao,liu,zhao,song);
(2)左右模式相同。
let arr=[100,[100,200],900] let [a,[b,c],d]=arr; console.log(a,b,c,d)
3.2.2不完全解构
(1)左边变量个数大于右边数组元素的个数---会导致多出来的变量值为undefined。
let [a, b, c] = [100,200]; console.log(a,b,c);//c 是undefined
(2) 左边变量个数小于右边数组元素的个数-------多出来的数组元素取不到数值。
let [a, b] = [100,200,300]; console.log(a,b);
(3) 模式不同,样式匹配
var a,b,c,d=[100,200,300] // a,b,c都是undefined ,只是赋值给了d
本文链接:https://www.kjpai.cn/news/2024-04-18/159943.html,文章来源:网络cs,作者:亙句,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
上一篇:UE5——AI篇(一)
下一篇:返回列表