ES6引入的第三个声明类关键词与let类似:const。
看一下用法:
rush:js;">
const c1 = 1;
const c2 = {};
const c3 = [];
rush:js;"> Object.getownPropertyDescriptor(window,"c1") //Object {value: 1,writable: false,enumerable: true,configurable: false}
ES6引入的第三个声明类关键词与let类似:const。
看一下用法:
rush:js;"> Object.getownPropertyDescriptor(window,"c1") //Object {value: 1,writable: false,enumerable: true,configurable: false}
上面的例子说,不能在对c2进行赋值,但是可以改变c2的内容,因为c2是个对象,看例子:
同样,也可以往c3中添加元素,因为c3是个数组。
const声明常量还有个问题,就是声明和初始化必须在一起,声明了就要初始化:
const c4;//Uncaught SyntaxError: Unexpected token ;
去掉分号仍然会报错,我们这里不讨论非strict mode下的情况,有兴趣的可以自己去试。
const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可随意修改,否则会导致SyntaxError(语法错误)。
MAX_CAT_SIZE_KG = 5000; // 语法错误(SyntaxError)
MAX_CAT_SIZE_KG++; // 虽然换了一种方式,但仍然会导致语法错误
当然,规范设计的足够明智,用const声明变量后必须要赋值,否则也抛出语法错误。
原文地址:https://www.jb51.cc/js/48562.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。