var, let, const,、 命令的理解和区别;
来源:互联网 发布:mac电脑怎么截长图 编辑:程序博客网 时间:2024/05/20 18:45
以下内容参考:
阮一峰 ECMAScript 6 入门
建议您阅读以上文章,它更为详细
let命令 ##:
只在命名它的代码块中有效,并且和const一样,不会发生变量提升和重复声明一个变量,这也就说明:在声明一个变量之前,这个变量都不可获取;
与var的区别: var声明的变量会发生 变量提升;我们在声明它之前可以获取到变量,由于变量提升它被定义为undefined;
let命声明的变量只在它声明的代码块中有效:
if(true){ let a = 1; var b =2;}console.log(a);//Uncaught ReferenceError: a is not defined//let声明的变量只在声明时所在的代码有效;所以这里会报错;console.log(b); // 2
let声明的变量不会发生变量提升:
if(true){ console.log(a);//Uncaught ReferenceError: a is not defined console.log(b);//undefined let a =1; var b =2;}
上面的代码也会报错,因为在let 声明变量之前,这个变量都是不可获取;
let不允许重复声明一个变量:
//报错 if(true){ let a =1; let a =2; }//报错if(true){ var a =1; let a =2;}//而var是可以的if(true){ var a =1; var a =2;}
const命令
const声明的变量只是一个可读的变量,这意味着你不能重新赋值const命令声明的变量;
if(true){ const a= 1; a =2;//报错}
上面会报错,因为const声明的变量不需要重新赋值,因为不运行重新赋值,所以我们在用cosnt声明变量的时候,要立刻初始化;
if(true){ const a; a =1; } 这段代码会报错,因为const不允许变量被重新赋值,它只能被读取;//正确的声明方式if(true){ cosnt a =1;}
和let一样cosnt命令的有效区也仅限于声明它时所在的代码块中;
if(true){ const a =1;} console.log(a);//报错,if(true){ const a =1; console.log(a);//1}
const也不会发生变量提升:
if(true){ console.log(a);//报错 const a =1;}
const也不允许重复命令一个变量:
if(true){ var a =1; const a =2;//报错}
暂时性死区
只要在块级作用域内存在let或cosnt命令声明的变量,它们声明的变量就会绑定这个块级作用;也就是不受外部变量的影响;
var a =1;if(true){ console.log(a); //Uncaught ReferenceError: a is not defined let a = 1;
上面的代码在打印a变量时,报错,原因是在let声明的变量a不受外部变量a的影响;let没有变量提升,所有在声明之前获取就会报错;
引用一段话:
ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
在let或const声明的变量之前,这个变量都不可以获取,这在语法上就叫 “暂时性死区”,也就是typeof()也不是一个百分比百的操作;
if(true){ type of(a); //报错 let a =1; }
- var, let, const,、 命令的理解和区别;
- var、let和const的区别?
- var let 和const的区别
- var和let,var和const的区别
- let、var、const的区别
- let const var 的区别
- js变量中有var定义和无var定义的区别,es6中let命令和const命令
- js中var、let和const的区别
- JavaScript中const、var和let的区别
- let var const 区别
- Var、const、let区别
- var、let、const 区别?
- let const var 区别
- var、let、const 区别?
- js中let 、 var 、 const的区别
- js中var, const, let的区别
- es6中let const var的区别
- JavaScript中const, var, let的区别
- [LeetCode] 231. Power of Two(判断整数是否是2的幂)
- LeetCode@HashTable_575_DistributeCandies
- 第三十四天:js总结+重写js的日历
- python字典
- 归并排序
- var, let, const,、 命令的理解和区别;
- django 1.11.X初学指南(1)
- CSS知识部分总结(不含CSS3)
- Linux进程间通信(2)--消息队列
- Android动画:解决通过View.getY()获取初始位置为0的问题
- 常用控件(3)
- 使用iframe的方式实现共用的头部和尾部页面
- SpannableString&SpannableStringBuilder一些简单介绍
- express中session模块