ES6 = ECMA 标准 是JS 的一个新增标准。
ES6环境 :webpack3.x , Traceur , chrome
ES6语法:
一、关于定义声明的变量:优先使用局部变量。
let const
之前是 var:
作用于是 ,全局,容易污染全局参数。
let :块级作用域,只能在作用域内使用,
1、如果在定义之前使用就会出现暂时性死区,所以一定要先定义再使用(undefine)。
2、在同一个作用域里面不能重复定义同一个变量,但是可以重复赋值。
const : 特性和let差不多。
1、const定义变量不能修改。
2、必须在定义完变量必须要有值,不能后赋值
3、const 定义的对象和push ...修改
3、用Object.freeze([‘apple’,'banna'])定义的变量就不能修改了
IFE
(function(){
//TODO})()立即执行函数
二、结构赋值:
//第一种 左右两边,结构格式保持一致
let [a,b,c]=[12,5,6];
console.log(a,b,c)//12,5,6
let [a,[b,c]]=[12,[5,6]];
console.log(a,b,c)//12,5,6
//第二种 左右两边,格式不一致
let [a,b,c]=[12,[5,6]];
console.log(a,b,c)//12,array(2),undefine
//第三种 json格式
let json = {
name:'amy',
age:18,
job:'码农'
};
let {name,age,job}=json
console.log(name,age,job);// amy 18 码农
//取别名的方式
let {name:n,age:g,job:a}=json
console.log(n,g,a);// amy 18 码农
//第四 结构的时候可以给默认值
let [a,b,c='暂无数据']=[12,5];
console.log(a,b,c)//12,5,暂无数据
let [a,b,c='暂无数据']=[12,5,undefined];
console.log(a,b,c)//12,5,暂无数据
let [a,b,c='暂无数据']=[12,5,null];
console.log(a,b,c)//12,5,null
//第五 用来交换两个数的位置
let a = 5;
let b = 6;
[a,b]=[b.a];
console.log(a,b)//6,5
三、字符串模板
//字符串模板 可以随意的换行
let name = 'amy';
let age = 23;
let str = `他的名字是$(name),他的年龄是$(age)`;
console.log(str)//他的名字是amy,他的年龄是18
str.includes('')是否包含。。。 返回布尔值
str.startwith('') 以什么开头
str.endwith('') 以什么结尾
str.repeat(200) str重复两百次 重复字符串
str.padStart(整个字符串的长度(包括填充的字符串),填充的东西) 往前填充过
str.padEnd(整个字符串的长度(包括填充的字符串),填充的东西)往后填充