正像介绍JavaScript常量那样,JavaScript与Java等编辑语言并不相同,我们熟知,Java中有固定的数据类型,如int型、float型,虽然JavaScript中有这些数据类型,但是在声明中无需对变量进行声明。这就意味着JavaScript的变量可以存放任何类型的值。例如,下例中将一个变量复制给整数,然后将一个boolean值直接赋值给它,这是完全合法的:
x=100; x=true;
虽然这些在JavaScript中合法,但是熟知C、C++、Java的人会发现,这样的赋值咋编程中是绝对不能出现的。不过正是由于JavaScript的这种缺少类型的规则,是的JavaScript在必要时刻可以快速、自动的完成两种不同类型的转换。例如,在前面的例子中已经可以看到,如果一个数值和字符串连接,只需要将两个不同的变量或者常量用“+”相连即可。
由于没有类型规则,所以JavaScript只能算是一种简单的语言,用于完成以下短小精悍的脚本任务,所以它并不是很精准;但是Java和C++在编程时却要使用严格的程序设计规则,一遍使编写、维护和重用这些较长的程序更容易。
JavaScript变量的类型可以分为全局变量和局部变量。全局变量,也成为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,而属于一个源程序文件,其作用域整个源程序。在函数中使用全局变量,一般应作全局变量说明。在程序的顶层代码中,可以使用JavaScript的关键字this来引用全局变量。在函数内部,this则有其他用途,具体用途会在以后介绍。
局部变量是特殊的全局兑现的属性。它们是一个对象的属性,这个对象被称为调用对象。