0
点赞
收藏
分享

微信扫一扫

【ES6】var、const和箭头函数

萧萧雨潇潇 2022-02-21 阅读 60

一、let(声明变量)

        特征:

                1.变量不能重复声明

let lxy = "fff";    
var lxy = red;      //控制台会报错

                2.块级作用域

                        以块为作用域,而 var 则表示全局有效

var a=1;
if(a>0){
	let a =3;
  console.log(a);  //此处输出的是 let定义的a
}
console.log(a);  //此处输出的是var的a
------------------------------------------------------------------
for(let i=0;i<=7;i++){
	console.log(i);   //输出1-7  没有什么疑问
}
console.log(i);  //此处会报错  因为上面的那个i是在for那个块中定义的,而这个i在全局中,但全局中并没有i所以会报错

                3.不存在变量提升

                        不允许在变量声明之前使用该变量,会报错

console.log(aa);    //输出undefined   因为var定义的变量会预解析 就是告诉页面中有这么个东西,但具体是多少还不知道
var aa = "lxy";
------------------------------------------------------------------------------
console.log(aa);    //报错 let定义的东西不会预解析,所以程序会一步一步往下走,当要输出aa时发现已解析的东西中没有aa 所以直接报错
let aa = "lxy";

                4.不影响作用域链

二、const(声明常量)

        注意事项:

                1.常量一定要赋初始值

                2.常量名一般都是大写字母

                3.常量的值不能修改

                4.块级作用域

三、箭头函数

var fn = function(){};
	    ||
var fn = ()=>{};

//当函数中仅有一条语句,并且使用return返回该语句时,就可以省略{}和retuen
(a,b)=>{									
	rteurn a+b       ===>		(a,b)=>a+b;
}

//当函数的参数只有一个时,可以省略()
//但如果函数的参数没有或者有一个以上,必须加()
(a)=>a+10;   ===>	  a=>a+10;

        箭头函数改变this指向

                只需要记住 箭头函数中的this 始终永远指向箭头函数在声明时所在作用域下的this

var a=1;
function fn(){
  var f=()=>{
    console.log(this);
  }
}
fn();
//箭头函数在声明时所在作用域下的this指向的是window,所以箭头函数中的this也指向windows

var o={
	a:1,
  b:function(){
  	var fn=()=>{
    	consloe.log(this);
    }
    fn();
  },
  c:3
}
o.b();
//箭头函数在声明时所在作用域下的this指向的是o,所以箭头函数中的this也指向o
举报

相关推荐

0 条评论