JavaScript 变量
JavaScript 变量是存储数据值的容器。
在本例中,x、y 和 z 是变量,用 var
关键字声明:
从上例中,您可获得:
- x 存储值 5
- y 存储值 6
- z 存储值 11
ECMAScript 2015
ES2015 引入了两个重要的 JavaScript 新关键词:let 和 const。
这两个关键字在 JavaScript 中提供了块作用域(Block Scope)变量(和常量)。
在 ES2015 之前,JavaScript 只有两种类型的作用域:全局作用域和函数作用域。
由于描述这些关键字之间的差异有点复杂,而且旧浏览器不支持这些关键字,因此本教程的第一部分通常使用var。
Safari 10 和 Edge 14 是第一款完全支持 ES6 的浏览器:
Chrome 58 | Edge 14 | Firefox 54 | Safari 10 | Opera 55 |
Jan 2017 | Aug 2016 | Mar 2017 | Jul 2016 | Aug 2018 |
类似代数
在本例中,price1、price2 以及 total 是变量:
在编程中,类似代数,我们使用变量(比如 price1)来存放值。
在编程中,类似代数,我们在表达式中使用变量(total = price1 + price2)。
从上例中,您可以算出 total 的值是 11。
JavaScript 变量是存储数据值的容器。
JavaScript 标识符
所有 JavaScript 变量必须以唯一的名称的标识。
这些唯一的名称称为标识符。
标识符可以是短名称(比如 x 和 y),或者更具描述性的名称(age、sum、totalVolume)。
构造变量名称(唯一标识符)的通用规则是:
- 名称可包含字母、数字、下划线和美元符号
- 名称必须以字母开头
- 名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
- 名称对大小写敏感(y 和 Y 是不同的变量)
- 保留字(比如 JavaScript 的关键词)无法用作变量名称
提示:JavaScript 标识符对大小写敏感。
赋值运算符
在 JavaScript 中,等号(=)是赋值运算符,而不是"等于"运算符。
这一点与代数不同。下面的代码在代数中是不合理的:
x = x + 5
然而在 JavaScript 中,它非常合理:把 x + 5 的值赋给 x。
(计算 x + 5 的值并把结果放入 x 中。x 的值递增 5。)
注释: JavaScript 中的"等于"运算符是 ==。
JavaScript 数据类型
JavaScript 变量可存放数值,比如 100,以及文本值,比如 "Bill Gates"。
在编程中,文本值被称为字符串。
JavaScript 可处理多种数据类型,但是现在,我们只关注数值和字符串值。
字符串被包围在双引号或单引号中。数值不用引号。
如果把数值放在引号中,会被视作文本字符串。
声明(创建) JavaScript 变量
在 JavaScript 中创建变量被称为"声明"变量。
您可以通过 var 关键词来声明 JavaScript 变量:
var carName;
声明之后,变量是没有值的。(技术上,它的值是 undefined。)
如需赋值给变量,请使用等号:
carName = "Volvo";
您可以在声明变量时向它赋值:
var carName = "Volvo";
在上面的例子中,我们创建了名为 carName
的变量,并向其赋值 "Volvo"。
然后,我们在 id="demo" 的 HTML 段落中"输出"该值:
实例
<p id="demo"></p>
<script>
var carName = "Volvo";
document.getElementById("demo").innerHTML = carName;
</script>
亲自试一试 »
提示: 在脚本的开头声明所有变量是个好习惯!
一条语句,多个变量
您可以在一条语句中声明许多变量。
以 var 作为语句的开头,并以逗号分隔变量:
var person = "John Doe", carName = "Volvo", price = 200;
亲自试一试 »
声明可横跨多行:
var person = "John Doe",
carName = "Volvo",
price = 200;
亲自试一试 »
Value = undefined
在计算机程序中,被声明的变量经常是不带值的。值可以是需被计算的内容,或是之后被提供的数据,比如数据输入。
不带有值的变量,它的值将是 undefined。
变量 carName 在这条语句执行后的值是 undefined:
重复声明 JavaScript 变量
如果再次声明某个 JavaScript 变量,将不会丢它的值。
在这两条语句执行后,变量 carName
的值仍然是 "Volvo":
JavaScript 算术
与代数类似,您能够通过 JavaScript 变量进行算术运算,使用 = 和 + 之类的运算符:
字符串也可以使用加号,但是字符串将被级联:
Also try this:
字符串也可以使用加号,但是字符串将被级联:
还可以试试这个:
JavaScript $ 美元符号
请记住,JavaScript标识符(名称)必须以以下开头:
- 字母 (A-Z 或 a-z)
- 美元符号 ($)
- 或者下划线 (_)
由于JavaScript将美元符号视为字母,因此包含 $ 的标识符是有效的变量名:
使用 $ 美元符号在JavaScript中并不常见,专业程序员经常将其用作JavaScript库中主函数的别名。
例如,在JavaScript库jQuery中,主函数$
用于选择HTML元素。在 jQuery $("p");
表示"选择所有p元素"。
JavaScript 下划线 (_)
由于 JavaScript 将下划线视为字母,因此包含下划线 (_) 的标识符是有效的变量名:
使用下划线在JavaScript中并不常见,但专业程序员的惯例是将其用作 "private (hidden)" 私有或隐藏变量的别名。