返回

Var、Let、Const:你我熟悉的JavaScript变量世界

前端

JavaScript这门神奇的编程语言,总会让人欲罢不能,越来越多的新手入坑。与此同时,JavaScript也在不断革新,以跟上时代潮流的脚步。在ES6(又称ES2015)中,出现了两种创建变量的新方法:let和const,让我们的编程世界里多了几分新鲜感。

在这篇文章里,我们不光会探讨var、let和const的区别,还会一起看看函数和块级作用域,变量提升和不变性,让你在编程的世界里更加得心应手。

深扒 Var Let Const 的本质差异

Var

熟悉JavaScript的你,一定不会对var感到陌生,它是JavaScript中最基本的变量声明方式。

var name = "John";

var 变量具有函数作用域,这意味着你可以在函数内部或外部访问它。

Let

let是ES6引入的一种新的变量声明方式。

let age = 25;

let变量具有块级作用域,这意味着你只能在它被声明的代码块内访问它。

Const

const也是ES6引入的,它是一种常量声明方式。

const PI = 3.14159;

const变量也是块级作用域的,并且一旦被赋值后就无法改变。

让我们来比较一下 Var Let Const

特征 var let const
作用域 函数 块级 块级
提升
可重新赋值

在ES6中使用函数和块级作用域

ES6还引入了块级作用域的概念。这意味着你可以在代码块内部声明变量,这些变量只在该代码块内可见。

{
  let name = "John";
  console.log(name); // "John"
}

console.log(name); // ReferenceError: name is not defined

变量提升

变量提升是JavaScript的一项有趣特性,它会把变量声明提升到代码块的顶部。这可能会导致一些意想不到的结果。

console.log(name); // undefined
var name = "John";

不变性

const变量是不可变的,这意味着你无法重新给它赋值。这可以防止你意外地改变变量的值。

const PI = 3.14159;
PI = 3.14; // TypeError: Assignment to constant variable.

何时使用 Var Let Const

现在,我们已经了解了var、let和const的不同之处,那么我们什么时候应该使用它们呢?

  • 使用 var 来声明全局变量或函数作用域内的变量。
  • 使用 let 来声明块级作用域内的变量。
  • 使用 const 来声明常量。

提升你的代码质量

希望这篇文章能让你更好地理解var、let和const。现在,你可以更自信地使用它们来编写更简洁、更易维护的JavaScript代码了!