-
var存在变量提升,let、const不存在变量提升
console.log(a); // undefined var a = 1; console.log(b); // Cannot access 'b' before initialization let b = 1; console.log(c); // Cannot access 'c' before initialization const c = 1;
-
let、const声明形成块作用域
if (1) { var a = 1; let b = 2; const c = 3; } console.log(a); // 1 console.log(b) // 报错:b is not defined ===> 找不到b这个变量 console.log(c) // 报错:c is not defined ===> 找不到c这个变量
var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问
let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
let定义的常量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
-
同一作用域下var可以声明同名变量,let、const不行
var a = 1; console.log(a); // 1 var a = 2; console.log(a); // 2 let a = 1; console.log(a); let a = 2; console.log(a); // 控制台显示Identifier 'a' has already been declared
-
const说明
a. 一旦声明必须赋值,不能使用null占位
b. 声明后不能再修改
c. 如果声明的是复合类型数据,可以修改其属性
var let const区别
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 什么是变量提升? JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 JavaScript 中,...
- var 相信都很熟悉,我作为一个菜鸟,刚开始学习 JS 的时候就是整天 var,也不知道 let 是何物。而在这个...
- 1.var声明的变量会挂载在window上 var a = 10;console.log(a,window.a) ...
- 目前公司要求用Cypress做测试,但是姐姐以前不会呀。怎么办,学呗! 首先打开官网,按照Get started里...