二,ES6中新增const关键字的使用方法
之前用var声明变量,变量想怎么改就怎么改,这里const关键字也是声明变量的,不过声明的是常量,常量就是固定的一个值,不能改变,
例如:const name=“唐僧”;
name="老沙"// 报错 因为它要更改常量name
只在块级作用于起作用,和let关键字一样
if(true){
const age=20;
}
alert(age)//报错 age在代码块外不起作用
不存在变量提升,但必须提前声明,和let一样
if(true){
alert(age); //报错 使用时 未声明
const age=20;
}
不可重复声明同一个变量
var age=20;
const age=20;//报错 因为变量age已经存在
声明后要赋值,没有赋值要报错
const age=20;
const name;//报错。因为没有赋值;
常量是对象呢?
const obj={"name":"abc"};
obj.name="老沙“;
obj.age=20;
console.log(obj) //obj{name:"老沙“,age:20}
是不是有点奇怪。不是说const关键字定义的变量不能改变吗?怎么在这里改变了?而且还没有报错?不用担心,暂且一起往下看:
这个时候,我们先引入一个概念:在赋值过程中,我们可以分为传值赋值和传址赋值。这里我们用到了传址赋值,什么叫传址赋值?
传址:在赋值过程中,变量实际上存储的是数据的地址(对数据的引用),而不是原始数据或者数据的拷贝
var student1 = {"name":"张三"};
var student2 = student1;
student2.name = "李四";
console.log(student1);
//结果:输出 {name: "李四"}
console.log(student2);
//结果:输出 {name: "李四"}
为什么student2的name改成了“李四”,student1的那么也变成了“李四”呢?这就是传址赋值!
如果这样写的话就会报错:
const Person = {"name":"张三"};
Person.age = 20;
Person = {};
//错误,企图给常量Person赋新值(新地址)
二,ES6中新增const关键字的使用方法相关推荐
- es6中新增对象的特性和方法
1. 对象简写 //曾经假如是这样的var name = 'xxx'var obj = {name : name, say : function(){alert(this.name)}}//对象简写后 ...
- C++中的const关键字(zz)
[补充]mutable关键字 有时我们希望类的数据成员即使在const成员函数中,依然是可以修改的,这时就可以把它们声明为mutable来实现.这样的应用,比如记录各种操作的调用次数,这时,即使在co ...
- 听说ES6中新增了能够与众不同的Symbol数据类型
前言 小伙伴们大家好.不知道大家有没有遇到这样一种情况:在我们日常开发中,有时候可能会用到一些别人提供的对象,并且业务需要想要在这个对象的基础上进行一些扩展,添加一些属性或方法等.这个时候如果我们不了 ...
- ES6中新增字符串方法,字符串模板
ES6中新增字符串方法,字符串模板 多了两个新方法 startsWith endsWith 返回的是一个Boolean值 let str='git://www.baidu.com/2123123';i ...
- ES6中新增数组遍历方法
ES6中新增的方法 遍历方法: forEach(),fifter(),some(): array.forEach(function(currentValue,index,arr)) // curren ...
- C++核心——类中的const关键字
C++核心--类中的const关键字 在C中我们都知道const修饰的变量时不可改的,C++中这条原则同样使用,但是C++中类中使用const时有一些特殊用法,本文主要记录类中的一些特殊用法. 利用c ...
- java在方法中用来抛出异常关键字的是,在Java语言中以下哪个关键字用于在方法上声明抛出异常()...
在Java语言中以下哪个关键字用于在方法上声明抛出异常() 更多相关问题 [判断题] 现金到账户汇款和账户到账户汇款简称为入账汇款. [单选] 客户办理一笔134.45元按址汇款,附言5个汉字,共应收 ...
- ES6中新增的字符串方法
实例方法:includes(), startsWith(), endsWith() 传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6 又提供 ...
- ES6 let 和 const 关键字
一.ES5 的 var 关键字 var 存在变量提升 var 允许重复声明,浏览器本身只识别一次,但不会报错 var 声明的变量即是全局变量,也相当于给 GO(window) 设置了一个属性而且两者建 ...
最新文章
- cglib invoke 和 invokeSuper 可用的组合
- php可关于及||的非正常用法
- 系统设计知识:系统模块结构设计知识笔记
- 对称机密算法与非对称机密算法
- Sniff网络基础原理和软件实现技巧详解
- serviceFabric oracle,Oracle ASM和多路径软件的兼容性【转】
- python 录制网易云登陆_Python爬虫教程,爬取网易云的音乐
- 《Java从小白到大牛》之第13章 抽象类与接口
- 《程序员情商》自我修养必备《论语》
- 20210725:FLAC刻录音乐CD教程01-下载安装Nero打补丁
- vue项目中使用ramda库
- 嵌入式编程经典书籍推荐
- git冲突产生原因_Git 常见问题 冲突原因分析及解决方案
- 字节跳动的“飞阅会”开会模式:先笔谈 后PK 直接生成会议纪要
- 小红书怎么看关键词排名?如何提升笔记自然搜索排名
- 校园6美女向一男生表白 史上最强表白阵容来袭
- gdbt java_GBDT算法详解与代码实现
- matlab修改图像分辨率_matlab – 增加灰度图像的分辨率
- 二进制数转换十进制数(十进制转二进制)
- 物联网技术:物联网技术在农业中的应用