ECMAScript中有五种数据类型(也称为基本数据类型)
- Undefined
- Null
- Boolean
- Number
- String
和一种复杂的数据类型Object
如果我们想知道给定变量的数据类型,可以用typeof操作符
下面介绍一下它的用法
var myname = “Hello word”;
alert(typeof(myname)); //”String”
alert(typeof myname)); //”String”
alert(typeof 66); //”Number”
从上面的程序运行就可以看出来,typeof操作符的操作数可以是变量,也可以是一个数字字面量,程序中的圆括号不是一定要加
- Undefined类型
它的英文意思就是不明确的,为下定义的。不错在ECMScript中,Undefined类型就只有一个值,即特殊的undefined,我们在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined
var myname;
alert(message == undefined); //true
二Null类型
Null类型同样也只有一个值,null.
var money = null;
alert(typeof money); //object
这里为什么会返回一个”object”呢?原因是null 从逻辑角度上来看就是一个空对象指针
三Boolean
该类型有两个字面值:True和False。我们可以对任何数据类型的值调用Boolean()调用Boolean()函数
四、Number类型
Number类型使用IEEE754格式来表示整数和浮点数值。
整数可以通过十进制、八进制、十六进制的字面量来表示。其中八进制字面量在严格模式下无效。
1.在表示浮点数值时,该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。小数点前面可以没有整数。不推荐这种写法。对那些极大或极小的数值,可以用e表示法(即科学计数法)表示的浮点数值表示。
2.ECMAScript能够表示的最小数值保存在Number.MIN_VALUE中,最大的数值保存在Number.MAX_VALUE中。想要确定一个数值是不是有穷的,可以使用isFinite()函数
3.NaN
NaN即表示一个非数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。任何涉及NaN的操作都会返回NaN。NaN与任何值都不想等,包括NaN本身。我们可以通过isNaN()函数来确定这个参数是否“不是数值”。
4.数值转换
我们可以利用Number()、parseInt()、parseFloat()
具体使用方法这里不做详细说明,介绍几个例子
Number()使用方法
var num1=Number(“hhhh”); //NaN
var num2=Number(“ ”); //0
var num3=Number(“011”); //11 忽略其前导0
var num4=Number(true); //1
parseInt()使用方法
var num1 = parseInt(“1234blue”); //1234
var num2 = parseInt(“ ”); //NaN
var num3 = parseInt(“0xA”); //10 (十六进制)
五、String类型
String类型用于表示由零或多个16为Unicode字符串组成的字符序列,即字符串。字符串可以由双引号(”)或者(‘)表示
- 字符字面量
String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符。如\n换行
我们可以通过length属性来获得字符串的长度
- ECMAScript中的字符串是不可变的,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
如 var lang = “Java”;
Lang = lang +”Script”;
- 转换为字符串
把一个值转换为字符串有两种方式,第一种是使用toString()方法(null和undefined值没有这个方法)在不知道是不是null或undefined的情况下,还可以使用转型函数String(),
这个函数能够将任何类型的值转换为字符串
六、Object类型
ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象的名称来创建。如:
var obj = new Object();
可以省略后面的圆括号,但不推荐
在ECMAScript中,Object类型是所有它的实例的基础。也就是说,Object类型所具有的任何属性和方法也同样存在与更具体的对象中。
Object的每个实例都具有下列属性和方法
constructor:保存着用于创建当前对象的函数。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中参数名(propertyName)必须以字符串形式指定
isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。
与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
toString():返回对象的字符串来表示
valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。