提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、let关键字和var关键字定义变量的区别是什么?
1.let声明的变量有严格的作用域
我们在这里先写一个代码块,在代码块内部分别用let关键字和var关键字定义变量,并在代码块外试图对代码块内的变量进行访问
代码如下(示例):
{
var name="jack";
let age=18;
}
console.log(name);
console.log(age);
显然我们在代码块外对var关键字定义的变量可以进行访问,而不能访问let关键字定义的变量,充分体现出了let声明的变量有严格的作用域
2.let 只能声明一次, var 可以声明多次
代码如下(示例):
var name="jack";
console.log("var关键字对第一个变量第一次声明",name);
var name="marry";
console.log("var关键字对第一个变量第二次声明",name);
显然var关键字声明的变量可以多次声明没有问题。
代码如下(示例):
let age=10;
console.log("let关键字对第二个变量第一次声明",age);
let age=18;
console.log("let关键字对第二个变量第二次声明",age);
对let声明的变量进行多次声明后报错,显然let声明的变量不能多次被声明。
3.let 不存在变量提升, var 存在变量提升
代码如下(示例):
console.log(name);
var name="jack";
虽然上面的console.log(name)没有能直接访问到name的值,但是也默认name是一个已初始化的变量,故var声明变量出现了变量提升的情况
代码如下(示例):
console.log(name);
let name="jack";
如果用let声明变量则会提示变量未初始化,let关键字声明的变量并不能进行变量声明的提升
总结
JavaScript中let关键字声明变量于var关键字声明变量的区别总结为以下三点:
1.let声明的变量有严格的作用域而var声明的没有。
2.let 只能声明一次, var 可以声明多次。
3.let 不存在变量提升, var 存在变量提升。