欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

es61letconst箭头函数基础学习

程序员文章站 2022-07-31 20:00:11
从零开始的es6 1 let const 箭头函数 // let和var差不多 不过let只在代码块内有效 { var a=1; let b=2; } console....

从零开始的es6 1 let const 箭头函数

	// let和var差不多 不过let只在代码块内有效
	{
		var a=1;
		let b=2;
	}
	console.log(a);   //1
	console.log(b);   //defined

	//let 是先申明后使用 var先使用后申明
	{
		console.log(e);   //undefined
		console.log(c);	  //c is not defined
		var e=2;
		let c=3;
	}

	//暂时性死区 
  var tmp=123;
    if(true){
        tmp="abc";
        let tmp;   //tmpis not defined
    }

//不能重复命名
let a=10;
undefined
console.log(a);
undefined
let a=100;
vm2621:1 uncaught syntaxerror: identifier 'a' has already been declared
    at :1:1
const 声明常量,一旦声明就不可改变
const a=1;
a=2;
console.log(a); // assignment to constant variable.
//const也是块级作用域
{
	const b=1;
}
console.log(b); //b is not defined
//const 保证了变量指向地址不变 不能保证该地址的数据不变
const a={};
a.name="1";
console.log(a.name);  //1
const b=[];
b.push("2");
console.log(b); //2
//如果希望它冻结
const a=object.freeze({});
a.name="zzw";
console.log(a.name); //undefined
	//箭头函数基本用法
	var a=function(){console.log('hello')}
		    var b=()=>console.log("es6hello")
	a();   //hellow
	b();   //es6hello    

   //使用多个参数时用逗号隔开
   var c=(a,b)=>a+b   
   console.log(c(3,9));  //12

   // 使用多条语句要用到大括号
   var d=(a,b)=> {
	   	if(a>3){
	   		let a=1;
	   		return a+b;
	   	}
   }
   console.log(d(4,9));   //10

   //this指向此作用域 而不是其他
   
const e = {
	name:"runoob",
	say:function(){
		console.log(this.name);
	}
}
e.say(); //nunoob  

const f= {
	aname:"hero",
    say: () => {
        console.log(this.aname);
    }
}
f.say(); //undefined