JavaScript变数

变量是分配给标识符的文字,因此您稍后可以在程序中引用和使用它。了解如何使用JavaScript声明一个

JavaScript变量简介

变量是分配给标识符的文字,因此您稍后可以在程序中引用和使用它。

中的变量JavaScript没有附加任何类型。将特定的文字类型分配给变量后,以后可以重新分配该变量以承载任何其他类型,而不会出现类型错误或任何问题。

这就是为什么JavaScript有时被称为“未类型化”的原因。

必须先声明变量,然后才能使用它。使用以下三种方法可以做到这一点varlet或者const,这三种方式在以后与变量进行交互的方式上有所不同。

使用var

直到ES2015,var是可用于定义变量的唯一构造。

var a = 0

如果您忘记添加var您将为一个未声明的变量分配一个值,结果可能会有所不同。

在现代环境中,启用严格模式后,您将得到一个错误。在较旧的环境中(或禁用了严格模式),这将初始化变量并将其分配给全局对象。

如果在声明变量时未初始化变量,它将具有undefined值,直到您为其分配值。

var a //typeof a === 'undefined'

您可以多次声明变量,并将其覆盖:

var a = 1
var a = 2

您还可以在同一条语句中一次声明多个变量:

var a = 1, b = 2

范围是变量可见的代码部分。

初始化为的变量var任何函数之外的对象都分配给全局对象,具有全局范围,并且在任何地方都可见。初始化为的变量var在函数内部分配给该函数的函数是局部的,并且仅在函数内部可见,就像函数参数一样。

在函数中定义的与全局变量同名的任何变量都将优先于全局变量,并对其进行阴影处理。

重要的是要理解一个块(由一对花括号标识)不会定义新的作用域。仅在创建函数时才创建新作用域,因为var没有块作用域,但有功能作用域。

在函数内部,定义在其中的任何变量在整个函数代码中都是可见的,即使在函数的末尾声明了该变量,仍然可以在开始时对其进行引用,因为JavaScript实际上是在执行代码之前将所有变量移到最前面(称为吊装)。为避免混淆,请始终在函数的开头声明变量。

使用let

let是ES2015中引入的新功能,本质上是var。它的范围仅限于定义它的块,语句或表达式,以及所有包含的内部块。

现代JavaScript开发人员可能会选择仅使用let并完全放弃使用var

如果let似乎是一个晦涩的名词,只需阅读let color = 'red'作为让颜色变成红色这一切都更有意义

定义let任何功能之外-与var-不创建全局变量。

使用var在顶层定义了一个全局变量,该变量在浏览器中被添加到了window目的。一种let(和const)块外的声明仍会创建一个可在应用程序代码中使用的变量,但未分配给window

使用const

声明的变量var或者let可以稍后在程序中进行更改,然后重新分配。一旦const初始化后,其值将无法再更改,并且无法将其重新分配给其他值。

const a = 'test'

我们无法将其他文字分配给aconst。但是我们可以变异a如果它是一个提供改变其内容的方法的对象。

const不提供不变性,只是确保引用不能更改。

const具有块范围,与let

现代JavaScript开发人员可能会选择始终使用const不需要稍后在程序中重新分配的变量。

为什么?因为我们应该始终使用最简单的结构来避免一路走来的错误。

免费下载我的JavaScript初学者手册


更多js教程: