/* let命令只局限于当前代码块 { let a = 0; var b=0; } alert(a); alert(b);*/ /* let不能提前解析 alert(b); let b=0; */ /* let在同一作用域不能定义相同的变量名 let b=0; let b=0; alert(b); */
/* let命令只局限于当前代码块 { let a = 0; var b=0; } alert(a); alert(b);*/ /* let不能提前解析 alert(b); let b=0; */ /* let在同一作用域不能定义相同的变量名 let b=0; let b=0; alert(b); */
/* a=3;//死区 会提前锁死 预留给后面的的同名let变量 let a; a=4; alert(a); */ //解构赋值 //可嵌套 /*let [a,[[b],c]]=[1,[[2],3]]; alert(a);//1 alert(b);//2 alert(c);//3 */ //可忽略 /* let [a,,c]=[1,,3]; alert(a);//1 alert(c);//3*/ //不完全结构 /* let [a,c]=[1,2,3]; alert(a);//1 alert(c);//2 let [a,[b],c]=[1,[2,4],3]; alert(a);//1 alert(b);//2 alert(c);//3 let obj={p:[{y:'world'},'heloo']}; let {p:[{y},x,z]}=obj; alert(x,y,z);//h w undefined*/ //剩余运算符 /* let [a,...b]=[1,2,3]; alert(a);//1 alert(b);//2,3 let{a,b,...rest}={a:10,b:20,c:30,d:40}; alert(a,b);//10 20 alert(rest);//{c:30 d:40}*/ //解构默认值 /*let[x,y="b"]=['a']; alert(x);//a alert(y);//b let {a=10,b=5}={a:3}; alert(a);//3 alert(b);//5 let {a:aa=10,b:bb=5}={a:3}; alert(aa);//3 alert(bb);//5*/ /*es6 function moey({a=0,b=0}={}) { alert([a,b]); } moey({a:1,b:2});*///1,2 /*//es5 function test(a,b=1) { // b=b||1;//如果不为空就是b 为空就是1; alert(a+'~'+b); } test(1,2);//1,2 test(1);//1,1*/ //以下二种就是一旦出现一个参数赋值就不能参数同名 /* function a(a,a,b) { alert(a+b+a); }*/ /* function a(a,a,b=3) { alert(a+b+a); }*/ /*function add(...values) { for (var a of values){ alert(a); } } add(1,2,3,4,5,6,7,8,9,10); */ //箭头函数 /* function aa(a,b) { alert('a'); } let bb=(a,b)=>{ alert('a'); alert('c'); }; aa(1,2); bb(1,2); var s=4; var that=this; $(function () { $('button:first').click(function () { setInterval(function () { console.log(that.s); },1000); }); $('button:last').click(function () { setInterval(()=> { console.log(that.s); },1000); }); });*/ /* function start() { this.s1=1; this.s2=2; setInterval(function () { console.log(this.s1);//this被盖掉了 },1000); setInterval( () =>{ console.log(this.s2);//他不会 箭头函数在定义的时候this就确定了 //相当于传统fu函数的少了一层 },1000); } var ste=new start();*/ //如果要通过事件触发 尽量用fun声明 //如果要方法普通声明+嵌套方法声明的可以用箭头函数 可以方便得到父类的this