二,ES6中新增const关键字的使用方法
来源:互联网 发布:正归淘宝店加盟 编辑:程序博客网 时间:2024/05/16 07:28
之前用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 — 新增关键字let、const
- 一,ES6新增let关键字使用方法
- ES6之const关键字
- ES6中const的使用
- JavaScript的ES6中var、let、const
- es6中let const var的区别
- ES6中var/let/const的区别
- ES6新增的数据结构
- C++中const的使用方法
- C语言中const关键字使用方法及使用场景
- ES6中新增数组方法与ES5之间的区别
- QT中新增的关键字和宏
- ES6的const命令
- ES6的新增特性1
- ES6 详解二: 新增内容概览
- JavaScript ES6中const、let与var的对比详解
- C++ 函数中const的使用方法
- JAVA面向对象,重写 重载的区别, 抽象类, 接口,final
- 熄灯问题
- 题目1003:A+B
- HTML 5入门知识(三)
- 向量几何在游戏编程中的使用4
- 二,ES6中新增const关键字的使用方法
- Android程序的启动页面(闪屏页面)设计
- Android自定view的一些方法的说明
- 向量几何在游戏编程中的使用5
- Python_eve_REST_API一个简单的python web框架
- 在try中存在return情况下,finally的执行情况
- C++集合运算函数总结-merge、set_union、set_difference、set_symmetric_difference、set_intersection
- C++11 std::chrono库详解
- 【数据库】从零开始学MySQL数据库语法