zoukankan      html  css  js  c++  java
  • ES6之const命令

    一直以来以ecma为核心的js始终没有常量的概念,es6则弥补了这一个缺陷;

        const foo='foo';
        foo='bar';//TypeError: Assignment to constant variable.
    

     上例声明了一个基本类型的常量,如过试图修改初始值则会报错;如果是引用类型的值同样适用,但是有一点需要注意,举例说明:

       const foo=[];  
       foo=[1];//Assignment to constant variable.
    

    正常报错,没毛病,再看:

        const foo=[1,2,3];
        foo[1]=4;
        console.log(foo)//[1, 4, 3]
    

     这怎么没报错?而且还能修改成功? 这两个例子不一样的地方在于前者是修改了指针(需熟悉js 引用类型)对应的内容改变了,后者则不是指向依然没变 但是指向对象的内容发生改变了,对于foo而言我只是一个指针负责指向对应的对象 至于对象内容是什么就不管我的事了所以可以修改;如果不想让内容也改变也行使用另一个方法;

        const foo=Object.freeze([1,2,3]);
        foo[1]=4;
        console.log(foo)//[1, 2, 3]
    

     这样就不用担心被修改了;

      

  • 相关阅读:
    数据结构总结(UPDATING......)
    课件例题4.11,4.12
    Luogu P1525 关押罪犯
    Luogu P1540 机器翻译
    Luogu P1313 计算系数
    Luogu P1311 选择客栈
    Luogu P1519 穿越栅栏 Overfencing
    Luogu P2863 [USACO06JAN]牛的舞会The Cow Prom
    Tarjan学习笔记
    Luogu P3393 逃离僵尸岛
  • 原文地址:https://www.cnblogs.com/yy-hh/p/5806958.html
Copyright © 2011-2022 走看看