zoukankan      html  css  js  c++  java
  • ES6学习总结之 Let 和 Const

    let和const命令

    1.let命令

    (1)基本用法

    let和var一样拥有声明·变量,但是let声明的变量只在let命令所在的代码块内有效

    {
      let a=5;
      var b=10;    
        
    }
    
    a // ReferenceError: a is not defined
    
    b // 10

    可以看到代码块中let声明的a在代码块之外是undefined.

    这里可以注意下,let声明在for循环中会 很有用

    var a=[];
    for(var i=0;i<5;i++){
           a[i]=function(){
                console.log(i);
           }
    }
    
    a[2]() //5
    
    
    var a=[];
    for(let i=0;i<5;i++){
           a[i]=function(){
                console.log(i);
           }
    }
    
    a[2]() //2

    从上面可以看出,let声明的变量只在当轮循环的代码块中有效,所以每次循环的i都是新变量,而对于var声明的i,由于是全局的,所以每次循环都会被新值覆盖,使得输出的是最后一轮的i值

    (2)let不存在变量提升

    console.log(a); //ReferenceError
    let a=2;

    let声明的变量一定要先声明后使用

    (2)let不允许重复声明

    //报错
    function(){
    let a=2;
    let a=3;
    }
    //报错
    function(){
    let a=2;
    var a=3;
    }
    //报错
    function(a){
    let a=2;
    }
    //不会报错
    function(a){
    {
    let a=5;
    }
    }

    let不可以在同一作用域反复声明

    2.const命令

    关于const命令,有以下几个重点:

    1.const用来声明常量,一旦声明,不可以更改其值

    2.const和 let一样,声明只在所在的块级作用域内有效

    3.const声明的常量也不提升,只能先声明后使用

    4.和let一样,const也不可以重复声明

    关于const声明的 常量,有一个注意点,如下

    const con={};
    con.prop=2223;
    
    con.prop //2223
    
    
    con={} // TypeError: "con" is read-only

    当const声明的常量是引用类型时,常量名指向数据所在的地址,const命令只是保证常量名指向的地址不变,并不保证该地址的数据不变!

    再看一个例子:

    const arr=[];
    
    arr.push("你好呀") ; //不报错
    
    arr.length=2; //不报错
    
    arr=["吃了吗"]; //报错

    const声明的arr是个数组,其本身可写,可以添加属性,但是不可以将其指向另一个数组!

  • 相关阅读:
    【leetcode】1403. Minimum Subsequence in Non-Increasing Order
    【leetcode】1399. Count Largest Group
    【leetcode】1396. Design Underground System
    【leetcode】1395. Count Number of Teams
    【leetcode】1394. Find Lucky Integer in an Array
    【leetcode】1391. Check if There is a Valid Path in a Grid
    【leetcode】1390. Four Divisors
    【leetcode】1389. Create Target Array in the Given Order
    modelsim仿真基本流程
    Quartus调用MOdelsim仿真过程
  • 原文地址:https://www.cnblogs.com/Cathamerst/p/7172423.html
Copyright © 2011-2022 走看看