转型函数
转型函数有:
Boolean()函数
虽然Boolean
类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean
值等价的值。要将一个值转换为其对应的Boolean
值,可以调用转型函数Boolean()
,如下所示:
var message = "Hello world!";
var messageAsBoolean = Boolean(message);
**
Boolean
**
-
ture
(true
) -
false
(false
)
String
- 任何非空字符串(
true
) - " "(空字符串)(
false
)
Number
- 任何非零数字值(包括无穷大)(
true
) - 0 和
NaN
(false
)
Object
- 任何对象 (
true
) -
null
(false
)
Undefined
-
n/a
(not applicable 不适用) - undefined(
false
)
这些转换规则对理解流控制语句(如if
语句)自动执行相应的Boolean
转换非常重要,请看下面的代码:
var message = "Hello world!";
if(message){//message被自动转换成了对应的`Boolean`值`true`
alert("Value is ture"); //Value is ture
}
Number()函数
Number()
函数的转换规则如下:
- 如果是
Boolean
值,true
和false
将分别被转换为1和0。
- 如果是数字值,只是简单的传入和返回。
- 如果是
null
值,返回0。 - 如果是
undefined
,返回NaN
。 - 如果是字符串,遵循下列规则:
- 如果字符串只包含数字(包括前面带正好和负号的情况),则将其转换为十进制数值,即
"1"
会变成1
,而"011"
会变成11
(前导零被忽略);- 如果字符串中包含有效的浮点格式,如
"1.1"
,则将其转换为对应的浮点数值(同样,也会忽略前导零);- 如果字符串包含有效的十六进制格式,例如
"0xf"
,则将其转换为相同大小的十进制整数值;- 如果字符串是空的(不包含任何字符),则将其转换为0;
- 如果字符串中包含除上述格式之外的字符,则将其转换为
NaN
。
- 如果是对象,则调用对象的
valueOf()
方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN
,则调用对象的toString()
方法,然后再一次依照前面的规则转换返回的字符串值。
var num1 = Number("Hello world!"); //NaN
var num2 = Number(" "); //0
var num3 = Number("00000011"); //11
var num4 = Number(true); //1
String()函数
Strign()函数转换规则如下
- 如果值有
toString()
方法,则调用该方法(没有参数)并返回结果;
- 如果值是
null
,则返回"null"
; - 如果值是
undefined
,则返回"undefined"
。
var value1 = 10;
var value2 = true;
var value3 = null;
var value4 ;
alert(String(value1)); //"10"
alert(String(value2)); //"true"
alert(String(value3)); //"null"
alert(String(value4)); //"undefined"
网友评论