❀JavaScript学习笔记——var、let和const关键字的异同点

1,015 阅读3分钟

 一、var和let的异同点

1、全局变量:是指在函数外声明的变量(全局变量在JavaScript程序的任何地方都可以访问),在函数体外或代码块外使用var和let关键字声明的变量它们的作用域都是全局的。

2、局部变量:是指在函数内声明的变量(函数内使用var声明的变量只能在函数内访问,如果不使用var则代表是全局变量),在函数体内使用var和let关键字声明的变量它们的作用域都是局部的 。

因此,var与let关键字既可以用来声明全局变量,也可以用来声明局部变量。

但是,在JavaScript中,全局作用域针对JavaScript环境; 

          在HTML中,全局作用域则针对window对象。

使用var关键字声明的全局变量属于window对象;

使用let关键字声明的全局变量不属于window对象 。


3、关于var、let关键字的重置变量

① 使用var关键字声明的变量在任何地方都可以修改;

② 在相同的作用域或块级作用域中,不能用let关键字重置var关键字的变量;

                                                    不能用let关键字重置let关键字的变量;

                                                    不能用var关键字重置let关键字的变量。

③ let关键字在不同作用域或不同块级作用域中,是可以重新声明赋值的。

4、变量提升

var关键字定义的变量可以先使用后声明

let关键字定义的变量必须先声明才能使用

5、循环作用域


使用var关键字声明的变量是全局的,包括循环体内和体外的;

使用let关键字声明的变量,作用域只在循环体内,而不影响循环体外。

二、var、let、const的区别

1、var声明的变量不具备块级作用域的特性,在{ }之外依然可以访问到;


2、let声明的变量只在let命令所在的代码块{ }内有效,在{ }之外不能访问;


3、const用于声明一个或多个常量,一旦声明,常量的值就不能改变,且必须初始化。

4、let和const的相同点

① 二者都是块级作用域;

② 都不能和它所在的作用域内的其他变量或函数名称相同

5、let和const的不同点

① const声明的常量必须初始化,而let不需要;

② const声明的常量不能重新赋值,也不能再次声明,而let可以

6、const定义的常量并非不可变,使用const定义的数组或者对象,其实是可以变得


但是我们不能对常量对象重新赋值