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 |

