javascript强制类型转换
javascript强制类型转换
一、转换为数值类型
Number(参数) 把任何类型转换为数值类型
A.如果是布尔值,false为0,true为1
var a=true;
document.write(Number(a)); 输出1
a=false;
document.write(Number(a)); 输出0
B.如果是数字转换为本身,将无意义的后导0去掉
var b=123.3120;
document.write(Number(b)); 输出123.312
C.如果是null转换为0
document.write(Number(null)); 输出0
D.如果是undefined转换为NaN
var ud;
document.write(Number(ud)); 输出NaN
E.如果是对象则会先调用对象的 valueOf()方法,如果valueOf()方法返回的是NaN,然后再调用对象的toString()方法
var obj1={
toString:function () {
return 5;
}
};
document.write(Number(obj1)); 输出5
var obj1={
toString:function () {
return 5;
},
valueOf:function () {
return 2;
}
};
document.write(Number(obj1)); 输出2
F.如果是字符串
1.如果字符串当中只有数字,将转换为10进制(忽略前导0和后导0)
document.write(Number("01234560.0")); 输出1234560
2.如果是有效的规范的浮点型,将转换为浮点值(忽略前导0和后导0)
document.write(Number("01234.0560")); 输出1234.056
3.如果是空字符串则转换为0
document.write(Number("")); 输出0
4.如果是其他的值,返回NaN
document.write(Number("64px")); 输出NaN
parseInt(参数1,参数2) 将字符串转换为整数
A.如果一个字符串只包含数字,则以10进制的方式转换为整型。
B.会自动忽略字符串前面的空格,直到找到第一个非空的数值字符串,直到解析到第一个非数值的字符串结束
C.如果字符串的第一个字符不是空格、数字、-,那么返回NaN
D.参数1
八进制 十进制 十六进制
参数2
控制输出模式 2-32之间的数字
document.write(parseInt("01330"));输出1330
document.write(parseInt(" -1234abc580")); 输出-1234
document.write(parseInt("a1234")); 输出NaN
document.write(parseInt(011)); 输出9
document.write(parseInt(0x11)); 输出17
document.write(parseInt(10,8)); 输出8
parseFloat()将字符串转化为浮点数
A.字符串当中的.只有第一个有效,其他的无效
document.write(parseFloat(" -1.5.7")); 输出-1.5
B.如果字符串是一个有效的整数,则返回整数,不会返回浮点数
document.write(parseFloat("2.0")); 输出2
二、转换为字符串类型
1.String(参数) 可以将任何的类型转换为字符串
null和undefined 也都会转换成字符串,分别是null和undefined
布尔类型 会返回true和false
document.write(String(null)); 输出null
document.write(String(undefined)); 输出undefined
document.write(typeof String(null)); 输出string
document.write(typeof String(undefined)); 输出string
document.write(String(true)); 输出true
document.write(typeof String(true)); 输出string
2.toString()不是全局函数,是每个对象自带的方法
对象.toString()
作用是将对象以字符串的方式来表示
数组.toString()
返回由逗号分割的字符串
Boolean.toString()
换回true或false
String.toString()
返回本身
Number.toString(参数)
返回本身的字符串形式 输出模式2-32
注意:null和undefined没有toString()方法
var arr=[1,2,3,4];
document.write(arr.toString()); 输出1,2,3,4
document.write(true.toString()); 输出true
var num=5;
document.write(num.toString(2)); 输出101
var num=14;
document.write(num.toString(16)); 输出e
三、转换为布尔类型
Boolean()可以将任何类型的值转换为布尔值
转换为假:"",0,NaN,undefined,false
其他的全部都转换为真
document.write(Boolean(null)); 输出false
document.write(Boolean("hello")); 输出true
document.write(Boolean("")); 输出false
document.write(Boolean(0)); 输出false