**
语言特性
**
1.const、let关键字
在JavaScript中,变量默认是全局性的,只存在函数级作用域,声明函数曾经是创造作用域的唯一方法。在ES6中,新提出let关键字修复了此缺陷。
```
if(true){
let a = ‘name’;
}
console.log(a);
同时还引入的概念是const,用来定义一个常量。
const MYNAME = ‘viking’;
MYNAME = ‘kitty’;
const MYNAME = {foo: ‘viking’};
MYNAME.foo = ‘kitty’;
**2.函数**
箭头函数:
一种更简单的函数声明方式,永远是匿名的
let add = (a,b) => {return a+b;}
let add = (a,b) => a+b;
let add = function(a,b){
return a+b;
}
let numbers = {1,2,3};
let doublenumbers = numbers.map((number)=> number * 2);
console.log(doublenumbers);
this在箭头函数中的使用:
var age = 2;
var kitty = {
age: 1;
grow:function(){
setTimeout(function(){
console.log(++this.age);
},100)
}
};
kitty.grow();
}
在对象方法中,this会指向global对象,一般会采用一些hack解决它。
let kitty = {
const self = this;
setTimeout(function(){
console.log(++self.age);
},100);
}
若使用箭头函数
let kitty ={
age:1,
grow:function(){
setTimeout(()=>{
console.log(this.age);
},100);
}
}
函数默认参数:
Rest参数:
当最后一个参数有“...”这样的前缀,它就会变成一个有参数的数组。
function test(…args){
console.log(args);
}
test(1,2,3);
function test2(name, …args){
console.log(args);
}
test2(‘Peter’,2,3);