es6基础语法-const

const声明一个只读的常量。一旦声明,常量的值就不能改变。

1.const和let一样只在当前代码块有效,且不能重复声明


2.作用域不会被提升


3.声明的常量必须被赋值


而let和const都是在声明所在的块级作用域内有效,let声明的变量可以改变,值和类型都可以改变,而const声明的变量一开始就需要初始化,不能留在后面在赋值。


理论来说const声明的变量的值不得改动,意思其实是变量指向的那个内存地址所保存的数据不得改动,上面代码中,常量zs储存的是一个地址,这个地址指向一个对象。不可变的只是这个地址,即不能把zs指向另一个地址,但对象本身是可变的,所以依然可以为其添加新属性,最后将 zs 指向另一个对象,就会报错TypeError: Assignment to constant variable.


如果想让定义的对象或数组的内部数据也不能够修改和改变,可以使用object.freeze(names)进行冻结,这样为对象添加新属性就不起作用。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、let命令 作用域 let命令与var基本相似,只是let所声明的变量只在let代码块内有效。 因为变量使用l...
    彩虹之梦阅读 3,875评论 0 2
  • let 和 const 命令 let 命令 块级作用域 const 命令 顶层对象的属性 gl...
    安小明阅读 4,529评论 0 0
  • let 命令 块级作用域 const 命令 顶层对象的属性 global 对象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice阅读 5,530评论 0 2
  • let 命令 块级作用域 const 命令 顶层对象的属性 global 对象 let 命令 基本用法 ES6 新...
    卞卞村长L阅读 3,733评论 0 0
  • 一直很矛盾要不要记下这段旧事。直到今天才拿定主意动笔,原因只有一个:只有痛苦远离之后,你才能相对客观地来描述一段过...
    青简书阅读 1,644评论 0 2