JavaScript的类型转换

来源:互联网 发布:淘宝店铺抽奖活动设置 编辑:程序博客网 时间:2024/06/06 02:41
01) 其他数据类型到Boolean类型转换
通过Boolean() 函数转换

  【Boolean  true    false】
String非空字符串""
Number任何非00和NaN
Object任何对象null
Undefinedn/aundefined(n/a not applicable 不适用)
例如:
Boolean("");//false
Boolean(0);//false
Boolean(NaN);//false
Boolean(null)//false
Boolean(undefined)//false
Boolean("briup");//true
Boolean(1);//true

02) 其他数据类型到数值类型转换
1.Number()
1) 如果转换的值是null,undefined,boolean,number
Number(true);//1
Number(false);//0
Number(null);//0
Number(undefined);//NaN
Number(10);//10 如果是数字值,原样输出
2) 如果是字符串:
Number("123");  //如果仅包含数值,转换为对应的数值
Number("234.1");//解析为对应的小数
Number("+12.1");//首位为符号位,其余为为数值,转换为对应的数值
NUmber("1+2.3");//NaN 符号位出现在其他位置,解析为NaN
Number("0xa");  //如果仅包含十六进制格式,转为为对应的十进制的值
Number("010");//【注意!】不会当做八进制被解析,结果为10
Number("");//空字符串被转换为0
Number("123ac");//包含其他字符: NaN
Number(" 12");//12
2.parseInt()
1) 如果转换的值是null,undefined,boolean,number
parseInt(true);//NaN
parseInt(false);//NaN
parseInt(null);//NaN
parseInt(undefined);//NaN
parseInt(10);//10 如果是整数值,原样输出
parseInt(10.3);//10 如果是小数,舍去小数点一级后面的内容
2) 如果是字符串:
parseInt("123");  //123;如果仅包含数值,转换为对应的数值
parseInt("234.1");//234;小数点后面的数值省略
parseInt("+12.1");//12; 首位为符号位,其余为为数值,转换为整数
parseInt("0xa");  //10; 如果仅包含十六进制格式,转为为对应的十进制的值
parseInt("010");  //10; 【注意!】不会当做八进制被解析,结果为10
parseInt("");  //NaN;空字符串被转换为NaN
parseInt("1+2.3");//1;如果首位为数值,依次向后解析,找到连续的数值,直到遇到第一个非数值的,将之前获取的数值转换为Number返回
parseInt("123ac");//123;
       3.parseFloat()
与parseInt() 类似,但是也有不同: 
1.字符串中的第一个小数点是有效的,而第二个小数点则无效其后的内容会被省略
2.始终忽略前导0
parseFloat("22.3.4")//22.3
parseFloat("022.34");//22.34
03) 其他数据类型到字符串类型转换
1. toString()函数
默认情况下,格toString()是以十进制式返回数值的字符串表示,通过传递参数,可以输入以二进制,八进制,十六进制乃至任意有效进制格式的字符串值
var num = 10;
num.toString();"10"
num.toString(2);"1010"
num.toString(8);"12"
num.toString(16);"a"
但是null ,undefined 没有toString() 方法
      null.toString()//报错 TypeError: null has no properties 
       undefined.toString();//报错 TypeError: undefined has no properties
2. String() 构造函数
       String(null)"null"
       String(undefined); "undefined"