ES6 新增语法与内置对象扩展

本文详细介绍了ES6中的新特性,包括let和const的块级作用域、解构赋值、箭头函数以及Array和String的扩展方法,如find、findIndex、includes等,并探讨了Set数据结构的使用。
摘要由CSDN通过智能技术生成

1. 什么是 ES6

ES 全称 ECMAScript,它是由 ECMA 国际化标准组织制定的一项脚本语言的标准化规范。
在这里插入图片描述

2. 为什么使用 ES6

每一次新标准的诞生,都意味着语言的完善、功能的加强。JavaScript 语言本身有一些令人不满意的地方:

  • 变量提升特性增加了程序运行时的不可预测性
  • 语法过于松散,实现相同的功能,不同的人可能会写出不同的代码。

3. ES6 新增语法

3.1 let

ES6 中新增了用于声明变量的关键字

3.1.1 let 声明的变量只在所处的块级有效

if (true) {
	let a = 10;
}
console.log(a);	// a is not defined

注意:使用 let 声明的变量才具有块级作用域,使用 var 声明的变量不具有块级作用域。

3.1.2 不存在变量提升

console.log(a); // a is not defined
let a = 10; 

3.1.3 暂时性死区

利用 let 声明的变量会暂时绑定在这个块级作用域,不会受外界影响

var temp = 123;
if (true) {
    temp = "abc";   // Cannot access 'temp' before initialization
    let temp;
}

3.1.4 经典面试题

var arr = [];
for (var i = 0; i < 2; i++) {
    arr[i] = function () {
        console.log(i);
    }
}
arr[0]();
arr[1]();

结果:
2
2

let arr = [];
for (let i = 0; i < 2; i++) {
    arr[i] = function () {
        console.log(i);
    }
}
arr[0]();
arr[1]();

结果:
0
1

3.1.5 小结

  • let 就是用来声明变量的
  • 使用 let 声明的变量具有块级作用域
  • 在一个打括号中使用 let 声明的变量才具有块级作用域,var 声明的变量不具有此特点
  • 使用 let 声明可以防止循环变量成为全局变量
  • 使用 let 关键字声明的变量不能进行变量提升
  • 使用 let 声明的变量具有暂时性死区的特性

3.2 const

声明常量,常量的内存地址不能改变。

3.2.1 具有块级作用域

if (true) {
    const a = 10;
}
console.log(a); // a is not defined

3.2.2 声明常量时必须赋值

const PI;   // const variable without initializer is not allowed

3.2.3 不可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值