
上QQ阅读APP看书,第一时间看更新
3.3 变量和类型
JavaScript是一种弱类型语言,在定义变量时不需要指定类型,一个变量可以存储任何类型的值。在运算时,JavaScript能自动转换数据类型。但是在特定条件下,开发人员还需要了解JavaScript的数据类型,以及掌握数据类型转换的基本方法。
3.3.1 变量
JavaScript使用var关键字声明变量。声明变量的五种形式如下:

声明变量之后,如果没有初始化,变量初始值为unde fined(未定义的值)。
JavaScript变量可以分为全局变量和局部变量。全局变量在整个页面中可见,并允许在页面任何位置访问。局部变量只能在指定函数内可见,函数外面是不可见的,也不允许访问。
函数内部使用var关键字声明的变量就是局部变量,该变量的作用域仅限于当前函数体。不使用var关键字定义的变量都是全局变量,不管是在函数内还是在函数外,全局变量在整个页面脚本中都是可见的。
【示例】本示例出使用var关键字在函数内外分别声明,并初始化变量a,a在不同作用域内显示为不同的值。相反如果不使用var关键字声明变量b时,会发现域外和域内的变量b显示相同的值,因为b="b(域内)=域内变量<br/>";将覆盖var b="b(域外)=全局变量<br/>";的值,在浏览器中预览的效果如图3.3所示。


图3.3 变量作用域
3.3.2 数据类型
JavaScript定义了6种基本数据类型,如表3.1所示。
表3.1 JavaScript的6种基本数据类型

【示例】使用typeof运算符可以检测数据的基本类型。下面的代码使用typeof运算符分别检测常用直接量的值的类型。
