JavaScript中的var、let和const:区别与使用
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
今天咱们来聊聊JavaScript中的三个关键字:var、let和const。它们在变量声明方面各有特色,让我们一起来看看它们之间的区别吧! 一、varvar声明的变量既是全局变量,也是顶层对象的属性。例 如,在浏览器环境中,var a = 10;会使得window.a等于10。•「变量提升」:var声明的变量存在变量提升的情况。比 如,console.log(a); var a = 20;会被编译器解析 为var a; console.log(a); a = 20;,所以输出undefined。•「多次声明」:可以对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明。 例如,var a = 20; var a = 30;最终a的值是30。•「局部作用域」:在函数中使用var声明的变量是局部的,不会影响到外部变量。例 如,function change() { var a = 30; }不会改变外部的a。二、letlet是ES6新增的关键字,用于声明变量,并且只在let命令所在的 代码块内有效。例如,{ let a = 20; }外面访问a会报错。•「不存在变量提升」:let声明的变量不存在变量提升。例 如,console.log(b); let b = 2;会直接报错。•「暂时性死区」:在声明let变量之前,该变量是不可用的,称为“暂时性死区”。例 如,var a = 123; if (true) { a = 'abc'; let a; }会报错。•「不允许重复声明」:在同一作用域中不能重复声明同一个变量。例 如,let a = 20; let a = 30;会报错。三、constconst声明的变量是只读的,一旦声明就不能修改。例 如,const a = 1; a = 3;会报错。•「必须初始化」:const声明的变量必须立即初始化,不能留到以后赋值。例 如,const a;会报错。•「复杂类型」:对于复杂类型的数据(如对象),const只能保证指针不变,不能保证 对象内部结构不变。例如,const foo = {}; foo.prop = 123;是允许的, 但foo = {};会报错。四、区别总结var有变量提升,let和const没有。•「暂时性死区」:var没有,let和const有。•「块级作用域」:var没有,let和const有。•「重复声明」:var允许,let和const不允许。•「修改声明的变量」:var和let可以,const不可以。使用建议能用 希望这篇文章能帮助你更好地理解 该文章在 2025/7/11 16:46:44 编辑过 |
关键字查询
相关文章
正在查询... |