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

//说实话 es6说起来很厉害 其实感觉也还行 但是不用还是不行的 要用用才可以更加理解 所以花几天时间来学习学习

	// 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 <anonymous>: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

猜你喜欢

转载自blog.csdn.net/qq_38674970/article/details/82874110
今日推荐