主要有以下三点:
-
转换成字符串
-
转换成数字
-
强制类型转换
一. 转换成字符串
1). 首先知道所用的是toString()方法。
针对Boolean值、数字和字符串这些伪对象,还是真对象,都有该方法。
2). 其次,该方法的使用。
除了number类型的使用时有点特殊外,别的未对象和真对象的使用一样,例如:
var a1 = true;
a1.toString(); //输出“true”
对于number类型的,可以加基,举例:
var a2 = 10
var a3 = 10.0
a2.toString() // 输出“10”
a3.toString() //输出"10"
a2.toString(10) //输出“10”
a2.toString(2) //输出“1010”
a2.toString(8) //输出“12”
a2.toString(16) //输出“A”
二. 转换成数字
将非数字的原始值转换为数字
1). 首先,使用的是parseInt() 和 parseFloat().
2). 其次,方法的使用注意:a)前者将值转换为整数,后者将值转换为浮点数; b)使用对象是String类型,若非String类型,则返回NaN。
3). 二者属性区别:a)parseInt(string, radix),接收两个参数。第一个是转换的字符串;第二个是基。b)parseFloat(String),接收一个参数。
4). 例子:
var iNum1 = parseInt("12345red"); //返回 12345
var iNum1 = parseInt("0xA"); //返回 10
var iNum1 = parseInt("56.9"); //返回 56
var iNum1 = parseInt("red"); //返回 NaN
var iNum1 = parseInt("AF", 16); //返回 175
var iNum1 = parseInt("10", 2); //返回 2
var iNum2 = parseInt("10", 8); //返回 8
var iNum3 = parseInt("10", 10); //返回 10
//如果十进制数包含前导 0,那么最好采用基数 10,这样才不会意外地得到八进制的值
var iNum1 = parseInt("010"); //返回 8
var iNum2 = parseInt("010", 8); //返回 8
var iNum3 = parseInt("010", 10); //返回 10
var fNum1 = parseFloat("12345red"); //返回 12345
var fNum2 = parseFloat("0xA"); //返回 NaN
var fNum3 = parseFloat("11.2"); //返回 11.2
var fNum4 = parseFloat("11.22.33"); //返回 11.22
var fNum5 = parseFloat("0102"); //返回 102
var fNum1 = parseFloat("red"); //返回 NaN
三. 强制类型转换(type casting)
一种类型强制转换为另一种类型
1). 首先,明确函数使用方法:
Boolean(value) - 把给定的值转换成 Boolean 型;
Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
String(value) - 把给定的值转换成字符串;
需要注意的是,该方法回创建一个转换成的新值。
2). 其次,分别注意每个方法的使用,示例:
// Boolean()
var b1 = Boolean(""); //false - 空字符串
var b2 = Boolean("hello"); //true - 非空字符串
var b1 = Boolean(50); //true - 非零数字
var b1 = Boolean(null); //false - null
var b1 = Boolean(0); //false - 零
var b1 = Boolean(new object()); //true - 对象
//Number(),该方法调用parseInt()和parseFloat()
var a1 = Number(false) //0
var a2 = Number(true) //1
var a2 = Number(undefined) //NaN
var a2 = Number(null) //0
var a2 = Number("1.2") //1.2
var a2 = Number("12") //12
var a2 = Number("1.2.3") //NaN
var a2 = Number(new object()) //NaN
var a2 = Number(50) //50
//String()
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //会引发错误