当前位置: 首页 > 工具软件 > let > 使用案例 >

let 规则

黄鸣
2023-12-01
/* 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
 类似资料: