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]

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

  

 

转载于:https://www.cnblogs.com/yy-hh/p/5806958.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值