JavaScript 变量
JavaScript数据类型
JavaScript允许我们使用三种基本数据类型
- 数字, 例如: 123年,120.50。
- 文本字符串,例如:"这个字符串"。
- 布尔值,例如:true或者false。
JavaScript还定义了两种普通数据类型,null和undefined。
此外,JavaScript还支持称为对象的复合数据类型。
我们将在单独的一章中详细介绍对象。
注意:JavaScript不区分整数值和浮点值。JavaScript中的所有数字都表示为浮点值。
JavaScript变量
和许多其他编程语言一样,JavaScript也有变量。
变量可以看作是有名字的容器。
我们可以将数据放入这些容器中,然后通过容器的名字引用数据。
JavaScript是无类型语言。
就是说JavaScript变量(容器)可以保存任何数据类型的值。
JS 变量声明
在使用变量之前,必须声明它。
变量用var关键字进行声明,如下所示。
<script type = "text/javascript"> var money; var name; </script>
可以同时声明多个变量:
<script type = "text/javascript"> var money, name; </script>
在ES6(ECMAScript 6)中,我们可以使用let来声明变量
let variable_name;
JS变量初始化
将值存储到变量中的过程称为变量初始化。
- 可以在变量创建时进行变量初始化,
- 也可以在稍后用到该变量时再进行初始化。
<script type = "text/javascript"> var name = "Ali"; // 声明时初始化 var money; money = 2000.50; // 用到时初始化 </script>
注意:var关键字仅用于声明或初始化,在文档中任何变量名的生命周期中只能使用一次。
不能重复两次声明相同的变量。
与许多其他语言不同,我们不必在声明变量时告诉JavaScript该变量将保存什么类型的值。
变量的值类型可以在程序执行期间改变,JavaScript会自动处理它。
JavaScript变量作用域
变量的作用域是程序中定义变量的范围。
JavaScript变量只有两个作用域。
全局变量(global)——全局变量具有全局作用域,这意味着它可以在JavaScript代码的任何地方定义。
局部变量(local)——局部变量只能在函数定义的地方可见。
函数参数始终是该函数的局部参数(局部变量)。
在函数体中,具有相同名称的局部变量优先于全局变量。
如果将局部变量或函数参数声明为与全局变量同名,则可以有效地隐藏全局变量。
请看下面的例子:
<html> <body onload = checkscope();> <script type = "text/javascript"> var myVar = "全局"; function checkscope( ) { var myVar = "局部"; // 名字和全局变量相同 console.log(myVar); // 在 checkscope函数中,优先使用局部变量 } </script> </body> </html>
JavaScript变量名
在给变量命名时,请记住以下规则。
- 不能使用保留关键字作为变量名。
- 不能以数字(0-9)开头。
- 必须以字母或下划线开头。 (123abc是一个无效的变量名,而_123abc是一个有效的变量名。)
- JavaScript变量名是区分大小写的。 (Name和name是两个不同的变量。)
JavaScript的保留字(关键字)
下表是JavaScript中所有保留关键字。
它们不能用作函数名,变量名,方法名。
abstract | else |
boolean | enum |
break | export |
byte | extends |
case | false |
catch | final |
char | finally |
class | float |
const | for |
continue | function |
debugger | goto |
default | if |
delete | implements |
do | import |
double | in |