前端笔记7 es6初探
1. let && const
let 和var的区别
1.let属于块级作用域,而var属于函数作用域。
2.let定义的变量不存在变量提升,要是要必须先定义。var 存在变量提升。
3.let不允许在相同的作用域类重复定义变量。使用var,后定义变量会覆盖前者。
const 与let的区别
1.const用于定义常量,必须赋值。
2.当定义简单变量时,只能使用,不能修改;当定义obj变量时,能改变obj内部的值,但变量引用不变。
2.箭头函数
var func = function(n1,n2){
return n1;
}
简写为 var func = (n1,n2)=>n1; 或者 var func = (n1,n2)=>{ return n1;}
箭头函数中this的指向问题。总结:箭头函数中的this指向的是定义时的this,而不是执行时的this。
当箭头函数当作方法使用时。总是指向window对象,不管是不是"use strict"
var obj = {
i: 10,
b: () => console.log(this.i, this),
c: function() { console.log( this.i, this) }
}
obj.b(); // undefined window{...}
obj.c(); // 10 Object {...}
当箭头函数在方法内部,总之不是独立当作方法使用时,它会捕获其所在(即定义的位置)上下文的this值, 作为自己的this值.
function Person(){
this.age = 0;
setTimeout(()=>console.log(this),3000);
}
let p = new Person(); //this指向p对象。
3.模板字符串。