-
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区别
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 什么是变量提升? JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 JavaScript 中,...
- var 相信都很熟悉,我作为一个菜鸟,刚开始学习 JS 的时候就是整天 var,也不知道 let 是何物。而在这个...
- 1.var声明的变量会挂载在window上 var a = 10;console.log(a,window.a) ...
- 目前公司要求用Cypress做测试,但是姐姐以前不会呀。怎么办,学呗! 首先打开官网,按照Get started里...