let
使用方式
let
关键字用于声明一个变量,它与var
相似,但有以下几个重要的区别:
(1) 不允许重复声明
示例:
var a=1;
var a=1;//可以重名
let b=1;
let b=1;//重名报错
(2) 块级作用域:
let
声明的变量只在其所在的代码块内有效。示例:
{
let a=1;
}
console.log(a);//报错
(3)没有变量提升:使用
let
声明的变量不会被提升到其所在的作用域顶部。这意味着你不能在声明之前访问它,否则会抛出ReferenceError
。示例:
console.log(a)//undefined
var a=1;
console.log(a)//1
console.log(b)//报错
let a=1;
console.log(b)//1
(4)不影响作用域链
示例:
let test="测试内容";
{
console.log(test);//测试内容
}
( 5)暂时性死区(Temporal Dead Zone, TDZ):在
let
声明的变量未初始化前,它的作用域内对该变量的引用都会导致错误。示例:
let test="测试内容";
{
console.log(test);//报错
let test="新内容";
}
const
使用方式
const
关键字用于声明一个常量,即一个不可变的值。当你声明了一个常量之后,就不能再改变它的值了。注意这并不意味着该常量所指向的对象或数组不可变,只是不能改变它所指向的内存地址。
示例:
const PI = 3.14159;
PI = 3; // 报错:TypeError: Assignment to constant variable.
总结
let和const关键字都是用来声明变量的,它们都具有块级作用域,但let声明的变量可以被修改,而const声明的变量是常量,不能被重新赋值。实际编程中,应根据变量的需求来选择使用let还是const,在大多数情况下,应优先考虑使用const
,除非你知道需要更改变量的值,此时可以使用let
。