**
ES6新特性:
一、let变量的声明以及声明特性
//声明变量
let a;
let f,b,c;
let e=100;
//1、变量不能重复声明
let star="repetition";
let star="mistake"; //这样声明会报错
//2、模块作用域、全局、函数、eval
{
let module = "模块";
}
console.log(module); //调用会报错
//3、不存在变量提升
console.log(ahead) //提前调用会报错
let ahead = "提前";
//4、不影响作用域链
{
let school="学校";
function fu(){
console.log(school);
}
}
fu();
二、const声明常量以及特点
-
//声明常量
const SHOOL= “学校”;//1、一定要赋初始值 const A; //会报错 //2、一般常量使用大写(规范) const a=100; //3、常量值不能修改 SHOOL = "xuexiao"; //4、模块作用域 { const AHEAD="XUEXIAO"; } console.log(AHEAD);//调用会报错,模块作用域 //5、对于数组和对象的元素修改,不算对常量的修改,不会报错 const TEAM = ['A','B','C']; TEAM.push('D');//不会报错 TEAM = 100; //会报错
三、结构赋值
-
//1、结构赋值 const five=['一','二','三','四']; let [noe,two,three,four] = five; console.log(noe,two,three,four); //2、对象结构 const construction = { name:'学校', age:'18', effect:function(){ console.log("老师教书育人"); } } let {name,age,effect}=construction; console.log(name,age,effect);
四、模板字符串
-
//1、字符串声明 let str =`字符串声明`; console.log(str,typeof str); //2、直接出现换行符 let mirror = ` <ul> <li>学校</li> <li>老师</li> </ul> `; //3、变量的拼接 let speak = `先生`; let out = `陆${speak}`; console.log(out);
五、箭头函数
-
//1、声明一个箭头函数 let fu=(a,b)=>{ return a*b; } //2、调用函数 let ride=fu(3,4); console.log(ride); //3、this是静态的,this指向函数声明所在作用域下的this function name1(){ console.log(this.name); } let name2=()=>{ console.log(this.name); } window.name='读书'; const school={ name:"ATAT" } //直接调用 // name1(); // name2(); //call方法调用 name1.call(school); name2.call(school); //体现this是静态的,this指向函数声明所在作用域下的this //4、不能作为构造函数实例化对象 let person=(name,age)=>{ this.name=name; this.age=age; } let me=person(先生,18); console.log(me); //调用失败,箭头函数不能实例化对象 //5、不能使用arguments变量 let fu2 = () =>{ console.log(arguments); } fu2(1,2,3) //6、箭头函数缩写 //-省略小括号,当形参有且只有一个的时候 let add = n =>{ return n*n; } console.log(add(8)); //-省略话括号,当代体只有一条语句的时候,此时return必须省略,语句的执行结果就是函数返回值 let pow=(n)=> n+n; console.log(pow(4))