简单掌握JavaScript中const声明常量与变量的用法
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; // 依然是语法错误,你这个倒霉蛋
相关推荐
-
jsp中变量及方法的声明与使用
本文实例讲述了jsp中变量及方法的声明与使用.分享给大家供大家参考,具体如下: <%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://&q
-
Javascript var变量隐式声明方法
诸如此类.这有一个问题,比如说在代码中的某一行,我想使用的一个已声明的变量x,结果由于打字或者拼写错误,这个变量被写成y了,结果相当于"隐式"声明了一个变量y,在实际编程过程中,这种错误有时比较难以发现. 除此之外,今天通过同事介绍,了解到这种"隐式声明"中的别外一个问题. 当你在当前上下文内进行这种"隐式"声明时,JavaScript引擎会先在当前上下文中寻找是否之前有声明此变量,如果没有,再到上一级的上下文中去寻找,如果一直未找到,会最后在w
-
基于JavaScript 声明全局变量的三种方式详解
JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量.该方式即为显式声明详细如下: <script> var test = 5;//全局变量 function a(){ var a = 3;//局部变量 alert(a); } function b(){ alert(test); } //a();//调用a方法,那么方法里面的内容才会执行 //b(
-
js 声明数组和向数组中添加对象变量的简单实例
数组有四种定义的方式 使用构造函数: var a = new Array(); var b = new Array(10); var c = new Array("first", "second", "third"); 或者数组直接量: var d = ["first", "second", "third"]; 扩展: function ObjStory(id,biaoti,author
-
关于JavaScript中var声明变量作用域的推断
一.迷思!由一段代码引发的疑惑 请看如下代码: 复制代码 代码如下: for(var i=0;i<3;i++) { console.log(j+","+k); for(var j=0;j<3;j++) { var k = j+1; } } console.log(i); 输出结果: undefined,undefined 3,3 3,3 3 如果你是搞c.java等语言的,可能你会不解,为何j.k这种局部变量可以被作用域外的代码访问呢? 如果JavaScript中用var声
-
JS声明变量背后的编译原理剖析
只要是写过点JS代码,很简单一个var 就完事了.那对于JS编译器背后它又发生了什么呢?那就一步步通过代码来讲起. 复制代码 代码如下: x = 1; alert(x); var y = function() { alert(x); var x = 2; alert(x); } y(); 上面的代码也会你答对了它会分别输出:1,undefined,2.对于我来说,第一反应它会输出:1,1,2.为什么第二个会输出undefined?在上面我明确定义了一个全局变量x,为何找不到? 那是因为:js编译
-
Javascript同时声明一连串(多个)变量的方法
前言 js同时声明多个变量我们相信很多的朋都会反复的使用var来定义了,那么如果要更科学一点的方法要如何实现呢,下面我们一起来看一篇关于js声明变量的方法,具体细节如下所示. JS声明变量的办法我就不说了,如果需要学习的朋友们可以点击这篇文章. 我们经常需要连续声明好几个变量,当我是新手时,我是这么做的. var a=1; var b={}; var c=[]; var d=... 实际上我们可以这样: var a=1,b=2,c=3,d=4; 也就是用,分隔多个变量. 这样不换行的情况,只适合
-
JavaScript变量声明详解
定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量.这里的定义是指通过var声明的. JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性.例如: 复制代码 代码如下: function test(){ myname = "huming"; alert(myname); } test(); // "huming" alert(myname); //"huming" 两个结果是一样的,说明
-
JavaScript中变量声明有var和没var的区别示例介绍
本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 (function(){ // ... })(); 在函数内部,有var和没var声明的变量是不一样的.有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东. 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMAScrpit5提供
-
浅谈JavaScript中定义变量时有无var声明的区别
前段时间回答了一个关于定义变量时使用关键字var与否的区别,总结回顾一下. 1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量. 使用var定义: var a = 'hello World'; function bb(){ var a = 'hello Bill'; console.log(a); } bb() //'hello Bill' console.log(a); //'hello world' 不使用var定义: var a = 'hello World'
随机推荐
- iOS之单独使用UISearchBar创建搜索框的示例
- python算法演练_One Rule 算法(详解)
- javascript 中String.match()与RegExp.exec()的区别说明
- asp.net 关于字符串内范围截取的一点方法总结
- 解析js如何获取当前url中的参数值并复制给input
- window.onload的页面加载技巧
- CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
- php实现建立多层级目录的方法
- SimpleCommand框架ImageLoader API详解(三)
- 使用vue与jquery实时监听用户输入状态的操作代码
- 最准确的php截取字符串长度函数
- ThinkPHP自动填充实现无限级分类的方法
- 插入排序_Python与PHP的实现版(推荐)
- Shell中使用scp命令实现文件上传代码
- 页面内容排序插件jSort使用方法
- linux服务器下添加用户和删除用户的命令
- Android编程实现TextView字体颜色设置的方法小结
- 巧妙解除被锁定的注册表
- DOS环境下玩转Windows注册表
- 先序遍历二叉树的递归实现与非递归实现深入解析