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]
    

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

      

  • 相关阅读:
    PMO的重要性
    idea CPU过高问题
    近期面试心得
    Spring-Eureka
    BIO/NIO
    redis redlock
    nmon 安装及使用 【linux环境】
    一致性hash 算法
    gossip协议了解
    00008
  • 原文地址:https://www.cnblogs.com/yy-hh/p/5806958.html
Copyright © 2011-2022 走看看