zoukankan      html  css  js  c++  java
  • 了解es6变量声明,这一篇就够了!

    变量声明(let, const)

    • let
      1.特点:
      (1)let声明的变量具有块级作用域(只在所处的块级内有效)
      代码块
     if (true) {
                let a = 10;
                var b = 20;
            }
            console.log(b);
            console.log(a);
    

    结果
    在这里插入图片描述
    (2)不存在变量提升
    代码块

     console.log(a);
     let a = 20;
    

    结果
    在这里插入图片描述
    (3)具有暂时性死区的特性
    代码块

    var num = 20;
            if (true) {
                console.log(num);
                let num = 50;
            }
    

    结果
    在这里插入图片描述
    2.优点
    (1)在业务逻辑比较复杂的时候,能够防止内层变量覆盖外层变量
    (2)防止循环变量变成全局变量
    eg:
    循环变量变成全局变量

     for (var i = 0; i < 3; i++) {}
         console.log(i);
    

    在这里插入图片描述
    使用let变量声明

    for (let i = 0; i < 3; i++) {}
            console.log(i);
    

    在这里插入图片描述
    对于特点(2)变量提升浅谈一下
    1.javascript代码执行分为:预解析,代码执行(按照代码书写顺序从上往下执行)
    2.预解析分为:变量提升,函数提升
    3.变量提升就是把所有的变量声明提升到当前作用域的最前面,不提升赋值操作
    变量提升栗子:

     console.log(a);
            var a = 30;
            // 预解析后---------(分界线)
            //var a;
            //console.log(a);
            //a = 30;
    

    在这里插入图片描述

    • const
      作用:声明常量,常量就是指(内存地址),不能变的量
      1.特点
      (1)具有块级作用域(同上略)
      (2)声明常量时必须赋值
      代码块
     //const声明常量时必须赋值
            const P;
    

    结果
    在这里插入图片描述
    (3)常量赋值后,值不能修改
    +对于基本数据类型来讲,一旦赋值,值不可更改(数值or字符串)
    +对于复杂数据类型来讲,不能重新赋值(内存地址不可改变),但是可以更改数据结构内部的值(数组or对象)
    eg:
    基本数据类型

    //常量赋值后,值不能修改
            const p = 10;
            p = 100;
    

    在这里插入图片描述
    复杂数据类型

    const arr = [1, 2];
            arr[0] = 'a';
            arr[1] = 'b';
            console.log(arr);
    

    在这里插入图片描述

    综上对var let const 三种变量声明做个总结
    在这里插入图片描述
    哈哈哈(懒~~)

    OVER 加油各位

  • 相关阅读:
    CodeForces 650C Table Compression
    HDU 5632 Rikka with Array [想法题]
    HDU 4352 XHXJ's LIS
    HDU 5634 Rikka with Phi
    HDU 4763 Theme Section
    LightOJ 1342 Aladdin and the Magical Sticks [想法题]
    HDU 4578 Transformation
    POJ 1177 Picture
    HDU 4614 Vases and Flowers
    SPOJ AEROLITE
  • 原文地址:https://www.cnblogs.com/Jdoit-CW/p/es6-variable-isok.html
Copyright © 2011-2022 走看看