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