返回

光速掌握作用域里的let、var的区别

前端

作用域

作用域是可以访问变量的集合,个人喜欢把它理解为变量的生存环境。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声明的变量无效。