ES6中的关键字 - const
const 关键字
1.声明后的值不可以修改;
const name = "小康哥"; name = "小康"; // 报错,const为constant的缩写,表示常量,即不可改变的量
2.const关键字只在块级作用域起作用;
var flag = true;
if(flag) {
const num = '5211';
}
alert(num); // 报错,在作用域外,未定义num
3.不存在变量提升,必须先声明后使用;
if(true){
alert(xk); // 报错,不存在变量提升,未提前声明
const xk = 'xiaokang';
}
var car = 'BMW';
const car = 'QQ'; // 报错,错误原因:声明了一个已经存在的变量 car
4.不可重复声明同一个变量,声明后必须赋值;
const hello; // 错误,只声明未赋值 const hi = 'xiaokangge';
5.const常量可以是一个对象类型:
const obj = {
"name":"xiaokang"
}
obj.name = "康哥";
obj.age = 18;
// 打印 obj 对象
console.log(obj); // {name:"康哥",age:18}
♦ 传值赋值:在赋值过程中,变量实际上存储的是数据的地址(对数据的引用),而不是原始数据或者数据的拷贝。
// 模拟传址赋值
var zhangsan = {
"car":"black"
}; var lisi = zhangsan; lisi.car = "red"; console.log(zhangsan); // {car:"red"} console.log(lisi); // {car:"red"}
总结:const关键字用于声明一个常量,且声明时必须赋值,声明后不可修改;同let关键字一样,也只是在块级作用域中起作用,不可以重复声明同一个变量,也不会发生变量提升;声明引用类型的常量时,需要注意的是,此时是传址(地址的引用)赋值。
ES6中的关键字 - const的更多相关文章
- es6 中的let,const
在es6中,let的作用和var差不多,都是用来声明变量的,但是他们之间的区别在于作用域不同,大家都知道在js中没有块级作用域,例如: for(var i=0;i<10;i++){ consol ...
- ES6 中 let 和 const 总结
目录 let const 1. let要好好用 1. 基本用法 2. let声明的变量不存在变量提升 3. TDZ(temporal dead zone)暂时性死区 4. 不允许重复声明 2. 块级作 ...
- ES6中class关键字
1 .介绍 //定义类 class Point { constructor(x, y) { this.x = x; this.y = y; } toString() { return '(' + th ...
- 浅谈ES6——ES6中let、const、var三者的区别
在了解let.const.var的区别之前,先了解一些什么是es6 Es6 全称ECMAscript 是JavaScript语言的一个标准,其实Es6本质就是JavaScript的一个版本,为什么叫E ...
- ES6中var/let/const的区别
let的含义及let与var的区别: let 声明的变量只在它所在的代码块有效: 如下: for (let i = 0; i < 10; i++) { console.log(i); } con ...
- ES6 中 let and const
let 和 const 命令 let 命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; v ...
- ES6中let与const命令详解
阮一峰ES6入门 let 作用域 let命令用来声明变量,但声明的变量只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: ...
- ES6中let、const和var的区别
一.let 1.基本用法 ES6 新增了let命令,用来声明变量. let 的用法类似于 var,但所声明的变量只在 let 命令所在的代码块内有效(一个“{}”相当于一个代码块) { let a = ...
- ES6中let和const详解
let和var一样也是用来定义变量,不同之处在于let是块级作用域,只在所定义的块级作用域中生效,一个花括号便是一个块级作用域 {var a="我是var定义的";let b=&q ...
随机推荐
- python 排序 归并排序
算法思想 迭代法: 归并算法一共有两种思想,笼统的说,这两种思想的区别就在于一种不分割未排序的序列(直接将序列看为n个个数为1的子序列),这种称为---迭代法 直接从队头开始,两两合并为一个个数为2的 ...
- sklearn聚类评价指标
sklearn中的指标都在sklearn.metric包下,与聚类相关的指标都在sklearn.metric.cluster包下,聚类相关的指标分为两类:有监督指标和无监督指标,这两类指标分别在skl ...
- Objective-C的self.用法
转自:http://mobile.51cto.com/iphone-313096.htm 进入正题, 我们经常会在官方文档里看到这样的代码: MyClass.h @interface MyClass ...
- apktool 反编译 回编译
下载apktool 安装好Java环境 拷贝apk 拷贝game.apk到当前文件夹.apk随便指定 反编译 反编译完成.生成game目录 game目录内容 回编译 回编译完成.生成build和dis ...
- ECharts学习指南
1.了解ECharts ECharts简单说就是互联网开发程序过程中,后台数据库用以实现数据到图形的映射的一个插件. 具体来说一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在PC和 ...
- `Java`中`abstract class`与`interface`区别
abstract class Java中允许使用abstract修饰符声明方法,此时只定义方法但是不实现方法(abstract修饰的方法没有主体,只有一个签名和一个分号). 以下是abstract方法 ...
- Linux命令查找文件目录
座右铭:长风破浪会有时,直挂云帆济沧海. linux一般查看文件或者目录有几种方法. /查看文件类容--------cat/more/less/head/tail 只能查看文本型(txt) (1) ...
- 【Appium】Android 按键码
keycode也是appium很强大的功能,鉴于官网不翻墙无法打开,特此备忘. 电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOM ...
- python常用模块二正则表达式
正则表达式 常用的正则元字符 # =================================匹配模式================================= #一对一的匹配 # 'h ...
- 大数据技术原理与应用【第五讲】NoSQL数据库:5.1 NoSQL概论&5.2 NoSQL与关系数据库的比较
5.1 NoSQL概论 最初:反SQL 概念演变,现在:Not only SQL 特点: 1.灵活的可扩展性 所以支持海量数据存储 2.灵活的数据模型 例如:HBase 3.和云计算的紧密结合 (一) ...