web学习笔记(三十五)ES6

news/2024/7/11 0:12:14 标签: 学习, 笔记, es6

目录

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声明的变量有几个特点:

  1. let关键词不允许对同一个变量进行重复声明操作。
  2. let关键词有块级作用域,每一个花括号{}就是一个块级作用域.
  3. let关键词没有变量提升的概念。
    console.log(a); // 报错
    let a = 20;
  4. let关键词有暂时性死区的特性(利用let声明的变量会绑定在这个块级作用域,不会受外界的影响)。
       <script>
            let a = 20; {
                console.log(a);
                let a = 10; //02变量解构.html:27 Uncaught ReferenceError: Cannot access 'a' before initialization
            }
        </script>
  5. let关键词同样适用于作用域链的概念,当在自身作用域找不到该变量的声明信息时,就会向上查找,直到找到最顶端,若还没有找到则进行报错的操作。
  6. let可以防止循环变量变成全局变量。

2.2const关键字 

const通常用来声明常量或者是引用类型(数组、函数、对象、日期、正则)的数据。const有以下几点特点:

  1. const关键子在声明时必须初始化。
  2. const关键字的值不允许修改,但当const用来声明一个数组时,单独修改数组中的某个元素不会报错,但直接将某个数组赋值给这个数组还是会报错。
  3. const关键字在声明时通常将标识符写为大写(推荐,但不是硬性要求)
  4. const关键字有块级作用域{}
  5. const关键字不允许重复声明同一变量。

声明对象类型时尽量使用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


http://www.niftyadmin.cn/n/5436221.html

相关文章

几个精品声音模型

AI技术提取某位歌手的音色&#xff0c;再用其替换另一位歌手音色的方式&#xff0c;可以实现接近歌手本人翻唱的逼真效果。无需学习其他伪音技巧&#xff0c;即可实现实时男女声音互换等等。 使用 RVC 及模型工具&#xff0c;可以实现以下几个功能&#xff1a; 音乐干声分离&…

2024年阿里云优惠活动大全,优惠代金券免费领取

2024阿里云优惠活动大全包括云服务器优惠价格、优惠券免费领取入口、域名优惠口令、域名优惠、云数据库优惠活动、对象存储OSS优惠活动、企业邮箱优惠、阿里云建站优惠、无影云电脑优惠价格、CDN特惠等&#xff0c;阿里云服务器网aliyunfuwuqi.com长期更新阿里云优惠活动大全&a…

三、传输层拥塞控制、差错控制

3.1 概述和传输层服务 传输服务和协议&#xff1a; 为运行在不同主机上的应用进程提供逻辑通信&#xff1b; 传输协议运行在端系统-发送方:将应用层的报文分成报文段&#xff0c;然后传递给网络层&#xff1b;接收方&#xff1a;将报文段重组成报文&#xff0c;然后传递给应用…

MySQL数据库编译安装

1数据库基础 什么是数据库 数据库&#xff08;Database&#xff09;是一个有组织的数据存储系统&#xff0c;用于有效地存储、检索、管理和维护数据。数据库系统允许用户以结构化的方式存储和操作大量数据&#xff0c;并提供了一种可靠的方法来管理和维护这些数据&#xff0c…

JAVA基础—JAVA类的生命周期问题

1.JDK与JRE的作用 当我们编写Java程序时&#xff0c;我们实际上是在使用一种高级编程语言&#xff0c;而计算机最终需要将这些高级语言转换成机器语言才能执行。在这个过程中&#xff0c;Java开发工具包&#xff08;JDK&#xff09;和Java运行时环境&#xff08;JRE&#xff0…

全身动作捕捉设备Dreamscap X1,赋予影视、游戏动画全新创作体验

在影视动画、游戏动画制作领域&#xff0c;全身动作捕捉设备具有完整的动作捕捉性能捕获&#xff0c;无需关键帧动画技能&#xff0c;也可以捕捉真人全范围的运动姿态&#xff0c;通过全身动作捕捉设备系统将动作捕捉数据直接流式传输到3D模型上&#xff0c;辅助动画师制作出逼…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Flex)

以弹性方式布局子组件的容器组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。Flex组件在渲染时存在二次布局过程&#xff0c;因此在对性能有严格要求的场景下建议使用Column、Row代替。Flex组…

Go语言gin框架中加载html/css/js等静态资源

Gin框架没有内置静态文件服务&#xff0c;但可以使用gin.Static或gin.StaticFS中间件来提供静态文件服务。 效果图如下&#xff1a; 一、gin 框架加载 Html 模板文件的方法 方式1&#xff1a;加载单个或多个html文件&#xff0c;需要指明具体文件名 r.LoadHTMLFiles("vie…