精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
变量(Variable)是相对常量而言的,常量通常是一个不会改变的固定值,而变量是对应到某个值的一个符号,该符号中的值可能会随着程序的执行而改变,因此称为“变量”。在很多情况下,变量又称为标识符(Identifier)。
变量可以用来存储数据,JavaScript中是通过变量名来调用这些被存储的数据。变量名必须以ASCII字符或下划线(_)开头,第1个字母不能是数字,但其后可以是数字或其他字母。以下代码中都是合法的变量名。
x X _x
x_1
注意 在JavaScript中对大小写是敏感的,因此,变量x与变量X是两个不同的变量。 虽然变量名只要不是以数字开头即可,但是对于变量名有个不成文的命名约定,这个约定与Java的命令约定相同。
1.从变量名上应该可以看出变量的作用。例如,要设置一个代表当天日期的变量,将变量名设置 为“date”,要比设置为“abc”更易于理解。
2.如果变量名是一个单独的单词,如“date”,那么该变量名应该全部使用小写;如果变量名由 两个或多个单词组成,那么从第二个单词开始,后面的所有单词的首字母都必须大写,如“theDate”“otherDate”等。
3.变量名不能与JavaScript中的保留字相同。
注意 以上命名约定只是一个“约定”而已,除了不能与保留字相同之外,其余两点约定可以遵守,也可以不遵守。
JavaScript与其他程序语言之间有些区别,其他程序语言大多需要为变量指定一个数据类型,例如,将一个变量指定为整数型,那么该变量就只能存储整数型数据,不可以存储浮点型或其他类型的数据 。而JavaScript中的变量是无类型(Notype)的,这就意味着在JavaScript中的变量可以是任何一种数据类型。例如,先将一个数字型数据赋给一个变量,在程序运行过程中,再将一个布尔型数据赋给同一个变量,这在JavaScript中是合法的,如以下代码所示。
x = "abc"; x = 101;
JavaScript中定义变量有两种方式:
1 使用var关键字定义变量,如“var bookSum;”
该种方式可以定义全局变量也可以定义局部变量,这取决于定义变量的位置。在函数体中使用 var关键字定义的变量为局部变量;在函数体外使用var关键字定义的变量为全局变量
2 不使用var关键字,而是直接通过赋值的方式定义变量,如“bookSum=100;”
使用该方式定义的变量为全局变量,与位置无关。
如:
<script type="text/javascript" language="javascript">
function myFunction() {
var myValue = "这是一个局部变量";
document.write("这是在函数体内输出的文字:", myValue);
}
myFunction();
//如果使用以下语句将会出错
//document.write(myValue);
</script>
<script type="text/javascript" language="javascript">
function myFunction() {
var myValue = "这是一个全局变量";
document.write("这是在函数体内输出的文字:", myValue);
}
myFunction();
document.write(myValue);//可以在函数体外引用变量
</script>
1 变量必须先定义后使用
2 允许为未定义的变量赋值,在给未定义的变量赋值时,JavaScript会自动定义该变量,并且该变量会作为全局变量出现在JavaScript代码中。
3 允许重复定义变量,每次定义变量的语句都是有效语句。
如:
<script type="text/javascript" language="javascript">
var myVariable = 1;
document.write(myVariable + 100, "<br>");
var myVariable = "这是一个字符串";
document.write(myVariable, "<br>");
var myVariable = true;
if (myVariable) {
document.write("变量myVariable是一个布尔类型的变量");
}
</script>