ES6学习系列重点针对ES6中新增特性进行学习,分为两个章节:
- 30分钟学会ES6 (一)
本章节主要学习let,const,template string,变量解构赋值,函数,Set,Map - 30分钟学会ES6 (二)
本章节主要学习类和模块化。
30分钟学会ES6 (一)
let,const
let和const都是用于定义变量/常量,与以前的var类似,但是在特性上有区别,解决了var之前的一些问题。
let
-
通过
let修饰的变量只能在所在块区域中生效,而var在块外也可生效。var关键字定义的变量
{ var a = 10; } console.log(a); //10let关键字定义的变量,只在对应块内生效,不会到块外面,也不会影响子块。
{ let b = "hello"; console.log(b);//hello } console.log(b);//undefined -
通过
let定义的变量可以防止循环变量延申到外部。-
var关键词定义的循环变量
for(var i = 0;i<2;i++){
console.log(i);
};
console.log(“i=”+i); //i=2- `let`关键词定义的循环变量 从下面也可以看出,**通过`let`修饰的循环变量与块结构内的let定义的变量作用域不同** 。 ```javascript for(let i = 0;i<2;i++){ let i = "hello"; console.log(i); //abc } console.log(i);//Uncaught ReferenceError: i is not defined -
-
同一个块结构中不能出现两次同名的let定义的变量
var关键词定义的同名变量
{ var i = 10; var i = 11; console.log("i="+i); //i=11 }let关键词定义的同名变量
{ let i = 10; let i = 11; console.log("i="+i); //Identifier 'i' has already been declared }
const
const用于定义常量,作用域和let相同,也只会在所在块结构内部生效。
const定义的变量是指向内存地址,所以不可变的是内存地址,而不是值。也就是说变量不能重新定义新的对象,但是可以修改对应的值。
const常量作用域在块内。
{
const a = 10;
console.log(a); //10
}
console.log(a); //a is not defined
const常量不可新建对象,但是可以修改值。
const a = [];
a = [10];//Assignment to constant variable.
a.push(10);
console.log(a);//[10]
变量解构赋值
可以同时定义多个变量,例如函数同时返回多个值(类似于java的tuple)。这种情况下只要左右参数和值对应即可,通过数组方式定义。
- 解构数组
- 设置默认值
let [a,b=10]=[20];
console.

本文是30分钟学会ES6系列的第一部分,主要讲解let、const、变量解构赋值、template string、箭头函数等ES6的关键特性。let和const解决了var的某些问题,提供了更精细的作用域控制;变量解构赋值简化了多值接收;template string提供了方便的字符串模板功能;箭头函数简化了函数定义;此外还介绍了Set和Map数据结构的基本用法。
最低0.47元/天 解锁文章
748

被折叠的 条评论
为什么被折叠?



