zoukankan      html  css  js  c++  java
  • ES6 --------- const

    对于es6使用的也挺频繁,但是有些东西真的使用得注意:

    const使用注意:

      1. 声明的变量不能再被声明,或者改变值类型,否则将会报错.报错的信息分别是:

    • TypeError: invalid assignment to const "x" (Firefox)
    • TypeError: Assignment to constant variable. (Chrome)
    • TypeError: Redeclaration of const 'x' (IE/Edge)

      eg: 

    const a = 2;
    a = 3;
    // 将会报上述类型错误(具体和李玉兰器有关)
    const a = 3;
    // Uncaught SyntaxError: Identifier 'c' has already been declared
    // 重新声明也会报错,提示你c已经被声明

      2. const声明的引用类型,虽然变量不可变,但是对象内部却可以被影响,这一点如果不注意,在开发中就会很尴尬~

    const a = {
      name : 'Mike'
    }
    a.name = 'Tom'
    // 此时a的属性name的值已经改变
    console.log(a)
    //{name: "Tom"}

    同理:数组也是(但是会存在浏览器兼容,比如firefox将不会修改数组的值,但是对象就会...很神奇...)

    const a = [1,2,3]
    a.shift()
    console.log(a)
    // [2,3] -- EDGE CHROME OPERA等浏览器
    // [1,2,3] -- FIREFOX

      3. const也存在块级作用域,作用域内声明的变量可以与全局变量同名

    const a = 5;
       console.log(a)
       function test(){
            const a = 3
            console.log(a)
       }
       test()
    
       {
           const a = 4;
           console.log(a)
       }

    分别输出: 5 3 4

      总结:

        const声明的变量是唯一的(同一作用域),它声明的值类型不可变,引用类型却可以改变...

  • 相关阅读:
    2018-8-10-win10-uwp-读取保存WriteableBitmap-、BitmapImage
    2018-8-10-win10-uwp-读取保存WriteableBitmap-、BitmapImage
    字节流与字符流的区别详解
    Java线程之 InterruptedException 异常
    java 线程的几种状态
    C++中 引用&与取地址&的区别
    百度富文本编辑器ueditor在jsp中的使用(ssm框架中的应用)
    CodeForces
    CodeForces
    训练记录
  • 原文地址:https://www.cnblogs.com/gxlself/p/8689224.html
Copyright © 2011-2022 走看看