光速掌握作用域里的let、var的区别
2023-11-01 16:30:45
作用域
作用域是可以访问变量的集合,个人喜欢把它理解为变量的生存环境。JS里的作用域可以分为:
-
全局作用域
全局作用域是0级作用域,在全局作用域中设置的变量被称为全局变量。全局变量可以在任何地方访问,包括在函数内部。
-
局部作用域
局部作用域是函数内部的作用域。在局部作用域中设置的变量被称为局部变量。局部变量只能在函数内部访问,在函数外部无法访问。
-
块级作用域
块级作用域是花括号({})内的作用域。在块级作用域中设置的变量被称为块级变量。块级变量只能在花括号内部访问,在花括号外部无法访问。
let、var和const的区别
let、var和const都是JavaScript中的变量声明。它们的区别如下:
-
var
var是JavaScript中传统的变量声明关键字。用var声明的变量是可变的,即可以在声明后重新赋值。
-
let
let是JavaScript中ES6新增的变量声明关键字。用let声明的变量是不可变的,即声明后不能重新赋值。
-
const
const是JavaScript中ES6新增的变量声明关键字。用const声明的变量是常量,即声明后不能重新赋值。
变量提升
变量提升是JavaScript中一个有趣的现象。在JavaScript中,变量声明会被提升到函数或块的顶部。这意味着,即使你把变量声明放在函数或块的中间,你也可以在声明之前使用该变量。
变量提升只对var声明的变量有效,对let和const声明的变量无效。
总结
作用域是JavaScript中一个重要的概念。理解作用域可以帮助你写出更健壮、更易维护的代码。
let、var和const是JavaScript中的三个变量声明关键字。它们的区别在于:
- var声明的变量是可变的,即可以在声明后重新赋值。
- let声明的变量是不可变的,即声明后不能重新赋值。
- const声明的变量是常量,即声明后不能重新赋值。
变量提升是JavaScript中一个有趣的现象。在JavaScript中,变量声明会被提升到函数或块的顶部。这意味着,即使你把变量声明放在函数或块的中间,你也可以在声明之前使用该变量。
变量提升只对var声明的变量有效,对let和const声明的变量无效。