ES6笔记总结

简介: ES6笔记总结

首先我们需要了解一下什么是 ECMA:

ECMA(European Computer Manufacturers Association)中文名称为欧洲计算机制造商协会,这

个组织的目标是评估、开发和认可电信和计算机标准。1994 年后该组织改名为 Ecma 国际

什么是 ECMAScript :

ECMAScript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言;

百度百科:https://baike.baidu.com/history/ECMAScript/1889420/144946978

ECMA-262 历史 :

ES6 从开始制定到最后发布,整整用了 15 年。

前面提到,ECMAScript 1.0 是 1997 年发布的,接下来的两年,连续发布了 ECMAScript 2.0

(1998 年 6 月)和 ECMAScript 3.0(1999 年 12 月)。3.0 版是一个巨大的成功,在业界得到

广泛支持,成为通行标准,奠定了 JavaScript 语言的基本语法,以后的版本完全继承。直到今

天,初学者一开始学习 JavaScript,其实就是在学 3.0 版的语法。

ECMA-262其实就是javascript

个人还是比较推荐使用ES6的,ES6 的版本变动内容最多,具有里程碑意义,其中也是加入许多新的语法特性,编程实现更简单、高效;

那下面我们就来看下ES6有哪些新特性吧:

1.let 关键字

let 关键字用来声明变量,使用 let 声明的变量有几个特点:

1. 不允许重复声明;

2. 块儿级作用域(局部变量);

3. 不存在变量提升;

4. 不影响作用域链;

2.const 关键字

const 关键字用来声明常量,const 声明有以下特点:

1. 声明必须赋初始值;

2. 标识符一般为大写(习惯);

3. 不允许重复声明;

4. 值不允许修改;

5. 块儿级作用域(局部变量);

3.变量和对象的解构赋值

什么是解构赋值:

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值;

应用场景:

频繁使用对象方法、数组元素,就可以使用解构赋值形式;

代码实现:

// ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
赋值;
// 1、数组的解构赋值
const F4 = ["大哥", "二哥", "三哥", "四哥"];
let [a, b, c, d] = F4;
// 这就相当于我们声明 4 个变量 a,b,c,d,其值分别对应"大哥","二哥","三哥","四哥 " 
console.log(a + b + c + d); // 大哥二哥三哥四哥
// 2、对象的解构赋值
const F3 = {
  name: "大哥",
  age: 22,
  sex: "男",
  xiaopin: function() { // 常用
    console.log("我会演小品!");
  }
}
let {
  name,
  age,
  sex,
  xiaopin
} = F3; // 注意解构对象这里用的是{} 
console.log(name + age + sex + xiaopin); // 大哥 22 男
xiaopin(); // 此方法可以正常调用

4.模板字符串

模板字符串(template string)是增强版的字符串,用反引号(`)标识

字符串中可以出现换行符;可以使用 ${xxx} 形式引用变量;

5.简化对象和函数写法

ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁;

代码示例:

// ES6 允许在对象的大括号内直接写入变量和函数作为对象的属性和方法
// 变量和函数
let name = "訾博";
let change = function() {
  console.log("活着就是为了改变世界!");
}
//创建对象
const school = {
  // 完整写法
  // name:name,
  // change:change
  // 简化写法
  name,
  change,
  // 声明方法的简化
  say() {
    console.log("言行一致!");
  }
}
school.change();
school.say();

 

6.箭头函数

ES6 允许使用箭头(=>)定义函数,箭头函数提供了一种更加简洁的函数书写方式,箭头函数多用于匿名函数的定义;

箭头函数的注意点:

1. 如果形参只有一个,则小括号可以省略;

2. 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的执行结果;

3. 箭头函数 this 指向声明时所在作用域下 this 的值;

4. 箭头函数不能作为构造函数实例化;

5. 不能使用 arguments;

箭头函数的特点:

1. 箭头函数的 this 是静态的,始终指向函数声明时所在作用域下的 this 的值;

2. 不能作为构造实例化对象;

3. 不能使用 arguments 变量;

7. ES6 中函数参数的默认值

ES 允许给函数的参数赋初始值;

代码示例:

//1. 形参初始值 具有默认值的参数, 一般位置要靠后(潜规则)
function add(a, b, c = 10) {
  return a + b + c;
}
let result = add(1, 2);
console.log(result); // 13
//2. 与解构赋值结合
// 注意这里参数是一个对象
function connect({
  host = "127.0.0.1",
  username,
  password,
  port
}) {
  console.log(host)
  console.log(username)
  console.log(password)
  console.log(port)
}
connect({
  host: 'baidu.com',
  username: 'root',
  password: 'root',
  port: 3306
})

8.rest 参数

ES6 引入 rest 参数,用于获取函数的实参,用来代替 arguments

9.扩展运算符

... 扩展运算符能将数组转换为逗号分隔的参数序列;

扩展运算符(spread)也是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的 参数序列,对数组进行解包;

10.Symbol

表示独一无二的值;

11.Promise

非常强大的异步编程的新解决方案;

12.Set 集合

类似数组,但元素不重复的集合;

13.Map 集合键值对集合;

14.class

java 实体类一样声明 js 类;

15.数值扩展

增加一些数值相关的方法等;

16.对象扩展

增加一些对象相关的方法等;

17.模块化

模块化、组件化;

18.Babel ES6 模块化代码转换

为了适配浏览器,将更新的 ES 规范转换成 ES5 规范;

19.ES6 模块化引入 NPM

像导入模块一样导入 npm 包;

相关文章
|
SQL BI 数据库
达梦(DM) SQL日期操作及分析函数
讲述DM 数据库中如何实现各种日期相关的运算以及如何利用分析函数 lead() over() 进行范围问题的处理
|
Java 应用服务中间件 API
Flowable UI Web应用搭建教程(图解)
Flowable UI Web应用搭建教程(图解)
965 0
|
druid Java 数据库连接
什么是连接池?为什么需要连接池呢?连接池的组成原理又是什么呢?
什么是连接池?为什么需要连接池呢?连接池的组成原理又是什么呢?
1936 0
什么是连接池?为什么需要连接池呢?连接池的组成原理又是什么呢?
|
5月前
|
存储 Prometheus 监控
Prometheus 深度指南:设计理念 · PromQL · Exporter · Thanos
Prometheus 是一款开源的系统监控与报警工具,专为云原生环境设计。它采用拉取模型采集数据,内置高效的本地时序数据库(TSDB),支持丰富的指标类型和四个黄金指标(延迟、流量、错误、饱和度)。其查询语言 PromQL 功能强大,可灵活聚合和分析时间序列数据。此外,通过 Exporter 机制,Prometheus 能轻松扩展到各种系统和服务。针对大规模场景,Thanos 提供高可用解决方案,整合多 Prometheus 实例,实现全局视图和长期存储。整体架构简洁可靠,适用于动态分布式环境。
730 10
Prometheus 深度指南:设计理念 · PromQL · Exporter · Thanos
|
10月前
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
440 60
|
9月前
|
运维 物联网 数据处理
TDengine vs InfluxDB:谁的“流式计算”功能是真的?
随着物联网、车联网、工业物联网等领域的快速发展,时序数据的处理需求也在不断增加。为了满足这一需求,时序数据库应运而生,为高频数据写入和实时分析提供了强有力的支持。在这一领域,TDengine 和 InfluxDB 是两大领先的解决方案。尽管两者都具有强大的时序数据处理能力,但在流式计算方面,二者存在显著差异。
210 5
|
安全 Linux 网络安全
安装docker
安装docker
248 0
|
10月前
|
存储 数据采集 物联网
TDengine 集群能力:超越 InfluxDB 的水平扩展与开源优势
随着物联网、车联网等领域的快速发展,企业所面临的数据采集量呈爆炸式增长,这对 IT 基础设施和数据库提出了严峻挑战。传统单机版数据库逐渐无法应对高并发的数据写入和复杂的查询需求。因此,底层数据库必须具备水平扩展能力,以确保其能够在数据量持续增长的情况下高效运行。
188 0
|
数据采集 人工智能 数据可视化
Python selenium爬虫被检测到,该怎么破?
Python selenium爬虫被检测到,该怎么破?
1535 8
|
安全 开发工具 git
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
这篇文章是关于如何在IDEA中配置Git、在Coding.net上创建项目和代码仓库,并将IDEA中的代码提交到远程代码仓库的详细教程,涵盖了Git安装、IDEA配置、项目创建、代码提交等步骤。
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git