简单掌握JavaScript中const声明常量与变量的用法


Posted in Javascript onMay 21, 2016

ES6引入的第三个声明类关键词与let类似:const。

看一下用法:

const c1 = 1; 
const c2 = {}; 
const c3 = [];
Object.getOwnPropertyDescriptor(window,"c1") 
//Object {value: 1, writable: false, enumerable: true, configurable: false}

上面的例子说,不能在对c2进行赋值,但是可以改变c2的内容,因为c2是个对象,看例子:

c2.p1 = 1;

同样,也可以往c3中添加元素,因为c3是个数组。

const声明常量还有个问题,就是声明和初始化必须在一起,声明了就要初始化:

'use strict'; 
 
const c4;//Uncaught SyntaxError: Unexpected token ;

去掉分号仍然会报错,我们这里不讨论非strict mode下的情况,有兴趣的可以自己去试。

const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可随意修改,否则会导致SyntaxError(语法错误)。

const MAX_CAT_SIZE_KG = 3000; // 正确

MAX_CAT_SIZE_KG = 5000; // 语法错误(SyntaxError)
MAX_CAT_SIZE_KG++; // 虽然换了一种方式,但仍然会导致语法错误

当然,规范设计的足够明智,用const声明变量后必须要赋值,否则也抛出语法错误。

const theFairest; // 依然是语法错误,你这个倒霉蛋
Javascript 相关文章推荐
xmlHTTP实例
Oct 24 Javascript
学习YUI.Ext第五日--做拖放Darg&Drop
Mar 10 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
JavaScript入门基础
Aug 12 Javascript
JavaScript数组合并的多种方法
May 22 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
May 22 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
详解vue axios二次封装
Jul 22 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
基于javascript实现表格的简单操作
May 21 #Javascript
javascript检测移动设备横竖屏
May 21 #Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
May 21 #Javascript
js+html5实现canvas绘制网页时钟的方法
May 21 #Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
May 21 #Javascript
javascript RegExp 使用说明
May 21 #Javascript
js+html5实现canvas绘制椭圆形图案的方法
May 21 #Javascript
You might like
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
轮播的简单实现方法
2016/07/28 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
深入解析Python中函数的参数与作用域
2016/03/20 Python
Django日志模块logging的配置详解
2017/02/14 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
python计算列表内各元素的个数实例
2018/06/29 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
python with (as)语句实例详解
2020/02/04 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
如何利用python读取micaps文件详解
2020/10/18 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
事业单位接收函
2014/01/10 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
高中军训感言400字
2014/02/24 职场文书
物理课外活动总结
2014/08/27 职场文书
毕业感言怎么写
2015/07/31 职场文书
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL
关于python中模块和重载的问题
2021/11/02 Python
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript