zoukankan      html  css  js  c++  java
  • es6

    1.let 和 const 命令

    (1)let 和 var 不同,var 的作用域是全局的,而let 的作用域是局部的,只在她当前的块内有效。

    {
    let a= 2;
    var b = 5;
    }
    console.log(b); //5
    console.log(a); //报错! a只在它的块内有效

    (2)let 写for循环,相当好用

    var sum = 0;
    for(let i = 0;i<100;i++){
    sum += i;
    }
    console.log(sum); //4950

    (3)var 和 let写循环的对比
    var arr = [];
    for(var m = 0;m<10;m++){
    arr[m] = function(){
    console.log(m);
    }
    }
    arr[6]();//10 var 是全局的,所以i全局有效,每次累加都改变,所以最后是10

    for(let n =0;n<10;n++){
    arr[n]=function(){
    console.log(n);
    }
    }
    arr[6]();//6 let是局部的,只在for这个块里有效


    (4)for循环语句和循环体的作用域区别
    for(let w = 0; w<10;w++){
    let w = "abc";
    console.log(w); //输出10次abc,说明for循环语句内的w和循环体内的w是不同作用域的
    //for循环语句内的w是父集作用域,循环体内的是子集作用域
    }


    2不存在变量提升
    console.log(a);  //undefined
    var a = 100;
    console.log(b); //报错!!let声明的变量必须在声明后才能使用
    let b = 10;


    3暂时性死区

     
     
  • 相关阅读:
    C#深复制和浅复制
    C#程序设计六大原则记录
    C#异步
    线程同步
    线程基础
    委托,事件
    XmlSerializer
    C#接口
    C#封装
    C#多态
  • 原文地址:https://www.cnblogs.com/lichunjing/p/6673982.html
Copyright © 2011-2022 走看看