1.转换成字符串类型。
a.toString()函数
几乎所有的数据类型都有toString()函数,但是null,undefined除外。
var age = 20;
var ageString = age.toString(); //"20"
var result = true;
var resultString = result.toString(); //"true"
var num = 10;
var numString1 = num.toString(); //"10"
var numString2 = num.toString(10); //"10"
var numString3 = num.toString(8); //"12"
var numString4 = num.toString(16); //"a"
var numString5 = num.toString(2); //"1010"
b.String()函数
函数的存在是为了补充toString()函数的不足,因为null,undefined数据类型没有toString()函数。
注:null可以理解成一种数据类型,其值也是null;undefined同理。
//null.toString(); //报:TypeError: null has no properties
//undefined.toString(); //报:TypeError: undefined has no properties
var numString6 = String(null); //"null"
var numString7 = String(undefined); //"undefined"
c.+,js中的字符串连接操作符,连接实现隐式转换。
2.字符串转换成数字
a.Number()函数
var num1 = Number(true); //true 返回1 false 返回0
var num2 = Number(undefined); //返回NaN
var num3 = Number("hello"); //返回NaN
var num4 = Number(" "); //如果是空字符串返回0
var num5 = Number(123); //返回123,如果是数字,简单返回数字
var num6 = Number("123abc"); //NaN
var num7 = Number("abc123"); //NaN
b.parseInt()函数
parseInt()函数默认将字符串转换成十进制数据,但是可以指定将字符串转换成指定的进制。
var numInt1 = parseInt("12.3abc"); //返回12,如果第一个字符是数字会解析直到遇到非数字结束
var nuuInt2 = parseInt("abc123"); //返回NaN, 如果第一个字符不是数字或者符合就返回NaN
var numInt3 = parseInt(""); //空字符串返回NaN, Number("") 返回0
var numInt4 = parseInt("10"); //返回10
var numInt5 = parseInt("0xA"); //返回10,默认转换成10进制
var numInt6 = parseInt("A", 10); //A按照16进制解析是10
var numInt7 = parseInt("10", 10); //10按10进制解析是10
var numInt8 = parseInt("10", 16); //10按照16进制机械是16
var numInt9 = parseInt("10", 8); //10按照8进制解析是8
var numInt10 = parseInt("10", 2); //10按照2进制解析是2
var numInt11 = parseInt("10", 3); //10按照3进制解析是3
var numInt12 = parseInt("A"); //返回什么?? -------------------NaN
c.parseFloat()函数
parseFloat()函数与parseInt()函数非常相似,不同之处在于:parseFloat会解析第一(.)点,在遇到第二(.)点或者非数字字符时结束。parseFloat不支持第二个参数。只能讲数据转换十进制。
3.Boolean类型的转换。
a.Boolean()函数
b.隐式转换,流程控制语句会隐式地将后面的值转换成Boolean类型,如:
var message = "123";
if(message) {
}
注:能转换成false值的:false,0,"",NaN,null,undefined