数据类型
1 Undefined类型
Undefined类型只有一个值:undefined。用var声明但未初始化的变量就是undefined。
2 Null类型
Null类型只有一个值:null。null表示一个空对象指针,typeof操作检测null值时返回object。
undefined和null之间的相等性检测返回true,即:
alert(null == undefined); //true
没有必要把一个变量显式设为undefined,但意在保存对象的变量没有真正保存对象,就应让变量明确保存为null。
3 Boolean类型
该类型有两个字面值:true和false
可调用Boolean()函数将一个值转换为对应的Boolean值。
4 数值类型
4.1 整数
- 数值字面量格式的十进制
- 以0开头的八进制字面值,如070(八进制56)
- 以0x开头的十六进制,如0xA //十六进制的10
4.2 浮点数
浮点数计算会产生舍入误差,会导致无法测试特定的浮点数值。例如:
if (a + b == 0.3) { //不要做这样的测试,因为0.1+0.2 != 0.3, 而是等于0.30000000000000004 alert("You got 0.3"); }
4.3 数值范围
最大值:Number.MIAX_VALUE,超出这个范围被自动转为Infinity值。
最小值:Number.MIN_VALUE
确定一个数是不是有穷可以使用isFinity()函数。
4.4 NaN
NaN(Not a Number)是个特殊的值,用于表示一个应返回数值的操作数未返回数值的情况(这样不会抛出错误)
NaN有两个非同寻常的特点:
- 任何涉及NaN的操作都会返回NaN
- NaN与任何值都不相等,包括NaN本身
可用isNaN(para)函数确定一个值是否“不是数值”。
4.5 数值转换
三个转换函数:Number(), parseInt(), parseFloat()
Number()转换规则:
- Boolean值,true返回1, false返回0;
- 数字值,简单传入传出;
- null,返回0;
- undefuned,返回NaN;
- 字符串遵循以下规则:
-
- 只包含数字转换为十进制数值(忽略前导零);
- 只包含有效的浮点格式,转换为对应的浮点数值;
- 只包含有效的十六进制格式,转换为对应的浮点数值;
- 空字符串,转换为0;
- 包含上述格式以外的字符串,转换为NaN。
6.如果是对象,调用对象的valueOf()方法,再依照上述规则转换返回值。转换结果为NaN,则调用toString(),在依照前面的规则转换返回的字符串。
parseInt()转换规则:
- 忽略字符串的空格,直到找到第一个非空格字符串。若第一个字符不是数字字符或负号,返回NaN;
- 第一个非空字符为数字,则会解释后续字符直至遇到非数字字符,如123blue会转换为123,22.5被转换为22,因为"."不是数字字符。
可以为parseInt()提供第二个参数来指定转换时使用的基数(即多少进制),如:
var num1 = parseInt("0xAF", 16); //175 var num2 = parseInt("AF", 16); //175 var num3 = parseInt("AF"); //NaN var num4 = parseInt("10", 2); //2 var num5 = parseInt("10", 8); //8 var num6 = parseInt("10", 10); //10
var num7 = parseInt("10", 16); //16
parseFloat()的转换规则与parseInt()类似,其会始终忽略前导零。
5 String类型
用length属性来获取字符串的长度:
var str = "Hello World"; alert(str.length); //输出11
字符串的特点:
字符串一旦创建就无法改变。若要改变某个变量保存的字符串,要先销毁原来的字符串,再用包含新值的字符填充该变量。
var lang = "Java"; lang = lang + "Script"; //重新定义lang,创建一个容纳10个字符的新字符串,再用“Java” 和“Script”填充,最后销毁原来的“Java”和“Script”
转换为字符串:
把一个值转换为字符串的两种方法:toString()和String()
null和undefined没用toString()方法,只能用String()方法。
String()函数遵循以下转换规则:
- 如果值有toString()方法,则调用该方法;
- 如果值是null,则返回null;
- 如果值是undefined,则返回undefined。
6 Object类型
ECMAScript中的对象就是一组数据和功能的集合。通过“new+对象类型名称” 的方式来创建对象,如:
var o = new Object();
Object的每个实例都有下列属性和方法:
- Constructor:保存着创建当前对象的函数,即构造函数;
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在,(property)必须以字符串的形式指定;
- _sPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型。
- propertyIsEnumerable(propertyName):用于检查给定的属性能否使用for-in语句来枚举;
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应;
- toString():返回对象的字符串表示;
- valueOf():返回对象的字符串、数值、布尔值表示。

浙公网安备 33010602011771号