ES6概念学习

本文详细介绍了ES6的多个核心特性,包括let和const关键字的块级作用域和不可重复声明,变量和对象的解构赋值,模板字符串的使用,箭头函数的特性及其在回调函数中的应用,函数参数的默认值,rest参数和扩展运算符的用途,Symbol的独特性质以及在解决命名冲突中的作用,迭代器和生成器的概念,Promise对象在异步编程中的解决方案,Set和Map集合的数据结构及其操作,以及Class类的声明。此外,还提及了ES6对数值和对象的扩展,模块化和Babel对ES6模块的转换支持。
摘要由CSDN通过智能技术生成

ES6学习:

  1. let 关键字 特性:

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

1. 不允许重复声明;

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

3. 不存在变量提升;

4. 不影响作用域链;

  1. const 关键字 特性:

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

1. 声明必须赋初始值;

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

3. 不允许重复声明;

4. 值不允许修改;

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

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

4. 模板字符串

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

特点:字符串中可以出现换行符,可以使用$(xxx)形式引用变量

应用场景:字符串与变量拼接的情况使用模板字符串

5.简化对象和函数写法

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

6. 箭头函数

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

箭头函数的注意点:

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

2. 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的执行结果; 3. 箭头函数 this 指向声明时所在作用域下 this 的值;

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

5. 不能使用 arguments;

特性:

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

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

3. 不能使用 arguments 变量;

应用:

箭头函数不会改变this指向,用来指定与this无关的回调函数会非常合适,如定时器和数组的方法回调

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

ES6允许给函数的参数赋初始值

8.rest参数

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

// ES6的rest参数...args,rest参数必须放在最后面

function data(...args){ console.log(args); // fliter some every map }

data("大哥","二哥","三哥","四哥")

9. 扩展运算符

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

应用1:合并数组:

ES5的 concat

ES6的扩展运算符

应用2:克隆数组

应用3:将伪数组转化为真正的数组

10,Symbol

ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是JavaScript 语言的第七种数据类 型,是一种类似于字符串的数据类型;

(第八个是bigint ,ES11的新特性)

Symbol 特点:

1. Symbol 的值是唯一的,用来解决命名冲突的问题;

2. Symbol 值不能与其他数据进行运算;

3. Symbol 定义的对象属性不能使用for…in循环遍历 ,但是可以使用Reflect.ownKeys 来获取对象的 所有键名;

//创建symbol

let s2 = Symbol('尚硅谷');

let s3 = Symbol('尚硅谷');

console.log(s2==s3); // false

//Symbol.for 创建

let s4 = Symbol.for('尚硅谷');

let s5 = Symbol.for('尚硅谷');

console.log(s4==s5); // true

11.迭代器

概述: 遍历器(Iterator)就是一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数 据结构只要部署 Iterator 接口,就可以完成遍历操作;

特性: ES6 创造了一种新的遍历命令 for...of 循环,Iterator 接口主要供 for...of 消费; 原生具备 iterator 接口的数据(可用 for of 遍历): Array; Arguments; Set; Map; String; TypedArray; NodeList;

工作原理:

1. 创建一个指针对象,指向当前数据结构的起始位置;

2. 第一次调用对象的 next 方法,指针自动指向数据结构的第一个成员;

3. 接下来不断调用 next 方法,指针一直往后移动,直到指向最后一个成员;

4. 每调用 next 方法返回一个包含 value 和 done 属性的对象;

for in 循环保存的是键名,for of 保存的是键值

12.生成器

13.promise

概述:

Promise 是 ES6 引入的异步编程的新解决方案。语法上 Promise 是一个构造函数,用来封装异步操作 并可以获取其成功或失败的结果;

1. Promise 构造函数: Promise (excutor) {};

2. Promise.prototype.then 方法;

3. Promise.prototype.catch 方法;

使用promise封装读取文件

 const p = new Promise(function(resolve,data){

fs.readFile("resources/text.txt",(err,data)=>{

// 判断如果失败

if(err) reject(err);

// 如果成功

resolve(data);

 });

});

 p.then(

function(value){

console.log(value.toString()); },

function(reason){ console.log(reason); // 读取失败

})

14.set集合

概述: ES6 提供了新的数据结构 Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了 iterator 接口,所以可以使用『扩展运算符』和『for…of…』进行遍历,

集合的属性和方法:

1. size 返回集合的元素个数;

2. add 增加一个新元素,返回当前集合;

3. delete 删除元素,返回 boolean 值;

4. has 检测集合中是否包含某个元素,返回 boolean 值;

5. clear 清空集合,返回 undefined;

15.Map集合

ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类 型的值(包括对象)都可以当作键。Map 也实现了iterator 接口,所以可以使用『扩展运算符』和 『for…of…』进行遍历;

Map 的属性和方法:

1. size 返回 Map 的元素个数;

2. set 增加一个新元素,返回当前 Map;

3. get 返回键名对象的键值;

4. has 检测 Map 中是否包含某个元素,返回 boolean 值;

5. clear 清空集合,返回 undefined;

比较少见的:

16.Class类

像java实体类一样声明js类

17.数值扩展

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

18.对象扩展

增加一些对象相关的方法

19.模块化

模块化,组件件

20.Babel对ES6模块代码转换

21.ES6模块化引入NPM包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值