JavaScript是弱类型语言,对于数据类型的规范比较松散.具体表现如下:
分类简单,且不明确细分.
声明变量时,不用指定数据类型.
使用不严格,可根据需要自动转换数据类型.
数据类型监察比较简单,也比较混乱
有点:使用限制少,应用灵活.
缺点:开发复杂的程序存在瓶颈,执行效率与强类型语言相比较低.
一.基本数据类型
JavaScript定义了6种基本数据类型
null //空值.表示不存在,当为对象的属性赋值为null,表示删除该属性
undefined //未定义.当声明变量,没有赋值时会现实该值.可以为变量赋值为undefined
number //数值.最原始的数据类型,表达计算的载体.
string //字符串.最抽象的数据类型,信息传播的载体
boolean //布尔值.最机械的数据类型,逻辑运算的载体
object //对象.面向对象的基础
注意:typeof运算符以字符串的形式返回上述6种基本类型之一,但是JavaScript把null归为object数据类型,而function(){}归为function类型.把函数视为一种基本数据类型,而不是object的一种特殊类型.
在JavaScript中,函数是一个比较复杂 特殊的数据结构,它可以是函数类型,又可以是对象类型,也可以是类(构造函数 构造器),用法比较灵活,用户应在具体环境中灵活把握.
二.数值
数值(number)也称为数字或数.JavaScript数值类型不再细分整形,浮点型等,所有数值都属于浮点型.
1.数值直接量
当数值直接出现在程序中时,被称为数值直接量,在JavaScript程序中,直接输入的任何数字都被视为数值直接量.
eg:数值直接量可以细分为整型直接量和浮点型直接量.浮点数就是带有小数点的数值,而整型是不带小数点的数值
var int = 1; //整型数值
var float = 1.0 //浮点型数值
整数一般都是32位数值,而浮点数一般都是64位数值.
eg:浮点数可以用科学计数法来表示.
var float =1.2e3;
等价于:
var float =1.2*10*10*10
或
var float =1200
其中e(或E)表示底数,其值为10,而e后面跟随的是10的指数.指数是一个整型数值,可以取正负值.
2.八进制和十六进制数值
JavaScript支持把十进制数值转换为八进制和十六进制数值直接量
eg:十六进制数值直接量:以"0X"或"0x"作为前缀,后面跟随十六进制的数值直接量.
var num = 0x1F4; //八进制数值
alert(num); //返回500
十六进制的数值是从09和af数字或字母任意组合,用来表示0~15之间的某个字,超过这个范围则以进制进行表示.
在JavaScript中,可以用number的tostring(16)方法把十进制整数转换为十六进制字符串的形式显示.
eg:八进制数值直接量:以数字0为前缀,其后跟随一个八进制的数值直接量.
var num = 0764; //八进制数值
alert(num); //返回500
3.数值运算
使用算数运算符,数值可参与各种计算,如加减乘除等
三.字符串
字符串(string),也称为文本,JavaScript文本部分字符串和字符
1.字符串直接量
字符串由Unicode字符 数字 和各种符号组合而成,字符串必须包含在单引号或双引号之中,
如果字符串包含在双引号中,则字符串内可以包含单引号.反之,可以在单引号中包含双引号.
字符串应在一行内显示,换行显示是不允许的
如果需要字符串换行显示,可以在字符串中添加换行符(\n)
在字符串中添加特殊字符.需要使用转义字符表示,如单引号,双引号等.
字符串中每个字符都有固定的位置,首字母的下标为0,第二个字符的下标为1,以此类推.这与数组元素的位置是一样的,最后一个字符的下标位置是字符串长度减1
2.转义序列.
转义序列,是字符的一种间接表示方式.在特殊语境中,无法直接使用字符自身
JavaScript定义反斜杠加上字符可以表示字符自身.但是一些字符加上反斜杠后会表示特殊含义.这些特殊转义字符被称为转义序列
\0 Null字符(\u0000)
\b 退格符(\u0008)
\t 水平制表符(\u0009)
\n 换行符(\u000A)
\v 垂直制表符(\u000B)
\f 换页符(\u000C)
\r 回车符(\u000D)
\" 双引号(\u022)
\' 单引号(\u0027)
\\ 反斜线(\u005C)
\xXX 由两位十六进制数值XX指定的Latin-1字符
\uXXXX 由4位十六进制数值XXXX指定的Unicode字符
\XXX 由1~3位八进制数值指定的Latin-1字符.ECMAScript3.0不支持,一般不使用
3.字符串操作
借助string定义的众多属性和方法,用户可以操作字符串.
4.布尔值
布尔型(Boolean)仅包含两个固定的值(true 和 false),其中true代表"真",而false代表"假".
在JavaScript中,undefined,null,"",0,NaN 和false这6个特殊值转换为逻辑值时为false,被称为假值.除了假值之外,其他任何类型的数据转换为逻辑值时都是true
5.Null
Null类型数据只有一个值,即null,它表示空值.
6.Undefined
undefined是Undefined类型的唯一值,它表示未定义的值.当声明变量未赋值时,或定义属性未设置值时,默认它们的值是undefined.