任何语言都离不开数据类型和变量,虽然j语言是弱类型语言,但是它一样支持变量声明,变量一样存在作用范围,既有局部变量和全局变量之分。
定义变量的方式:js语言是弱类型语言,所以在定义变量时不需要声明变量的数据类型,js语言支持两种方式来定义变量。
- 隐式变量:直接给变量赋值。如: a = ‘aaaa’;
- 显式变量:适用var关键字定义变量。如:var a;
变量作用域:变量还有个重要的概念:作用域。根据变量定义的范围不同,变量分为全局变量和局部变量。
如下代码示范了变量作用域:
<script type="text/javascript">
//定义全局变量test
var test = '全局变量';
function myfun(){
//在函数内部不使用var 定义的age也是全局变量
age = 20;
//在函数内部使用var 定义的isMale也是局部变量
var isMale = ture;
}
myfun();
alert(test+"\n"+age);
alert(age);
</script>
输出结果为:
全局变量
20
javascript是弱类型脚本语言,声明变量时无需指定变量的数据类型。javascript变量的数据类型是解释时动态决定的。但是js的值保存在内存中时,也是有数据类型的。js中的基本数据类型有如下五种。
- 数值类型:包含证书和浮点数。
- 布尔类型:只有true和false两个值。
- 字符串类型:字符串变量必须用引号括起来,可以单引号,也可以双引号
- underfined类型:专门用来确定一个已经创建但是没有初值的变量。
- null类型:用于表明某个变量的值为空。
既然存在这么多的变量类型,那么就会存在类型转换。JS中支持自动类型转换,也支持强制转换。强制传唤存在三种,如下:
- toString():将布尔值、数值等转换成字符串
- parseInt():将字符串、布尔值转换成整数。
- parseFloat():将字符串、布尔值转换成浮点数。
当然js中肯定不止这五种基本数据类型,下面就是三种符合类型。
-
对象:对象是一系列命名变量、函数的集合。其中命名变量的类型既可以是基本数据类型,也可以是符合类型。对象中的命名变量称为属性,而对象中的函数称为方法。对象访问属性和函数的方法都是通过“.”调用来实现的。
-
数组:数组是一系列的变量。与其他强类型语言不同的是,javascript中数组元素的类型是可以不同的。
-
函数:函数是js中的另一个复合类型。函数可以包含一段可执行性代码,也可以接受调用者传入参数。js的函数声明中,参数列表不需要数据类型声明,函数返回值也不需要数据类型声明。
: