1 变量定义
let只在局部代码块中有效 const不希望修改,差不多跟常量一个意思吧
2 箭头函数
【主要作用】:一是更简短的函数书写,二是对this的词法解析
x = > x *2
相当于 function(x){ return x*2}
node express.get('/aa",function(req,res){
.....
})
现在你可以这样写
.get("/aa",(req,res)=>{
})
注意返回对象的话要用 ()=> ({
a:1,b:2
})
你以为就这样?简化了匿名函数的写法,nonono,想想以前函数里面的this吧,
this所在的函数属于谁,他就代表。
以前我们要用jq写个购物车
var goodsDetail = {
this.num = 10 //这是一个全局变量,
init: function(){
this.numAdd(); this属于goodsDetail
},
numAdd:function(){
var that = this;
this ----------this所在的函数为numAdd, numAdd属于 goodDetail,so,this代表goodDetail
$("#dom").click(function(){
this ------指代dom这个元素--------注意匿名函数的这种写法
})
}
}
【注】:在 ECMAScript 3/5 中,这个问题可以通过新增一个变量来指向期望的this对象,然后将该变量放到闭包中来解决。
那现在有了箭头函数呢?????
妈妈再也不用担心我的this指向有问题了
箭头函数没有自己的this,他的this值继承自外部。而这里就是window对象了,所以会报undefined的错误。
可以简单的理解,JS 每一个 function 有自己独立的运行上下文,而箭头函数不属于普通的 function,所以没有独立的上下文。所以在箭头函数里写的this其实是包含该箭头函数最近的一个function上下文中的this(如果没有最近的function,就是全局)。