ES6之新增const命令使用方法
hi,我又回来了,今天学习一下
const
命令。
声明一个常量
const
声明一个只读常量,一旦声明,常量的值便不可改变。
例子如下:
const food = 12;
food = 23; // Uncaught TypeError: Assignment to constant variable.
还可以声明一个变量
const
可以声明一个变量,声明以后,必须初始化,否则变错。
例子如下:
const food; // Uncaught SyntaxError: Missing initializer in const declaration
其他特性
const
和let
有许多相似点:
- 只在其声明的块级作用域中有效;
- 不存在作用域提升,是暂时性死区,必须先声明,后使用;
- 不能重复声明,否则会报错
例子如下:
//1.只在其声明的块级作用域中有效
{
const food = 'apple';
}
console.log(food); // Uncaught ReferenceError: food is not defined
//2.暂时性死区
{
console.log(HI); // Uncaught ReferenceError: HI is not defined
const HI = 'hello';
}
//3.不能重复声明
{
const food = 'apple';
const food = 'orange'; // Uncaught SyntaxError: Identifier 'food' has already been declared
}
const的声明变量的本质
const声明的变量,并不是说变量的值不能改变,而是对于变量指向那个的内存地址所保存的数据不得改动。
如果声明的变量是基本数据,那值就保存在变量指向的那个内存地址,可以理解为对于常量。
但是如果声明的变量是一个引用数据类型,那只能保证变量保存的指针地址不变,至于变量里面的属性和值,就不能保证了。
注意:如果把这个声明的引用数据类型变量指向另一个对象,就会报错。
例如:
// 常量是一个对象
const About = {};
About.us = 'usb';
About.ua = 'usc';
console.log(About); // {us: "usb", ua: "usc"}
About = {}; // Uncaught TypeError: Assignment to constant variable.
//常量是一个数组
const BALL = [];
BALL.length = 2;
BALL[0] = 'haha';
BALL = []; // Uncaught TypeError: Assignment to constant variable.
补充:声明变量的方法
- ES5的
var
和function
命令。 - ES6的
let
和const
命令。
最后总结
其实,const也不是很难,只要你细心,就会发现非常的简单。
ES6之新增const命令使用方法的更多相关文章
- ES6中新增let命令使用方法
在ES6中新增了let命令,该命令的用法与var 类似,但是所声明的变量只能在let命令所在的代码块(最接近let 命令的大括号内)中有效果.但是let 又有一些不同于var 的特性. 1.let定 ...
- ES6之新增let命令使用方法
let命令的用法 let是es6中的声明一个变量的命令,只在它声明的代码块中有效,出了这个代码块就会报错.也非常适合for循环,在循环中i的值只在循环语句中生效,在外边取不到的. var命令声明的是一 ...
- ES6 let和const命令(3)
const 用来声明常量.一旦声明,就不能改变. const在声明必须初始化,只声明不赋值会出错 const的作用域与let一样,只在声明的块级作用域有效. const命令声明的常量也不提升,同样存在 ...
- es6 let和const命令(1)
基本用法 ES新增了let命令,用于声明变量.其用法类似于var,但是所声明的变量只在let命令所在的代码块中有效. for(let i = 0;i<5;i++) {} console.log( ...
- ES6 let和const命令(4)
const声明的常量只在当前代码块有效.如果想设置跨模块的常量,可以采用下面的写法. //constants.js模块 export const A = 1; export const B = 3; ...
- ES6 let和const命令(2)
为什么要使用块级作用域 在ES5中只有全局作用域和函数作用域,没有块级作用域,因此带来了这些麻烦 内层变量可能会覆盖外层变量 var tmp = new Date(); console.log(tmp ...
- ES6中的const命令【转】
1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught Typ ...
- ES6中的const命令
1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught T ...
- ES6 let和const命令
一.let定义变量 { let a = 1;} console.log(a);只在let所在的代码块有效,console的结果是a is not defined,报错. 不存在var的变量提升,即使用 ...
随机推荐
- Redhat安装python环境(readline模块)
多次尝试,发现linux下安装软件: yum install readline-devel readline patch yum update python -y # 这步很重要,修复了报错 pip3 ...
- vue.js和angular.js的区别
关于Vue的描述: HTML模版+JSON数据,再创建一个Vue实例,就这么简单 关于Angular的描述: AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态 ...
- 09 Finding a Motif in DNA
Problem Given two strings ss and tt, tt is a substring of ss if tt is contained as a contiguous coll ...
- Oracle学习笔记(一)
用户与表空间 系统用户: 一.系统用户级别sys.system 最高级(sys级别高于system)sysman 操作企业管理器使用的scott 创始人之一的名字scott默认密码是tiger登录方法 ...
- 异步IO原理及相应函数
何为异步IO? (1)几乎可以认为:异步IO就是操作系统用软件实现的一套中断响应系统.(2)异步IO的工作方法是:我们当前进程注册一个异步IO事件(使用signal注册一个信号 SIGIO的处理函数) ...
- 密码分析:使用 Ettercap 和 它的 ARP 毒化功能来嗅探流量
vim /etc/etterconf 将 ec_uid 和 ec_gid 改为 0 需要取消下面的 IPTABLES 行的注释.它在靠近文件末尾的 LINUX 一节 ettercap -G Shift ...
- (博弈 sg入门2)
接下来介绍Nim游戏(同样引用杭电上的,懒的打字) 1.有两个玩家: 2. 有三堆扑克牌(比如:可以分别是 5,7,9张): 3. 游戏双方轮流操作: 4. 玩家的每次操作是选择其中某 ...
- GameTOOL
1.游戏的资源网站 http://www.gameres.com/yanfa_1.html
- 51nod1459迷宫问题—(迪杰斯特拉)
1459 迷宫游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间, ...
- polymer技巧
1.添加一个div元素 我们完全可以自己造一个这样的东西出来,比如下面例子我们给 div 元素添加一个 is="demo-test" <script> var Poly ...