JS:强制类型转换
整理了一些常用的强制类型转换方法:
Number(); //将其他类型强制转化为 number类型
String(); //将其他类型强制转化为 string类型 (+"")
Boolean(); //将其他类型强制转化为 boolean类型(true|false)
ParseInt(); //将其他类型转化为整型(整数)
ParseFloat(); //将其他类型转化为浮点型(小数)
举例
1.Number()
var result = Number("100"); // 纯数字类型的字符串 => 数值
var result = Number("100a"); // 非纯数字类型的字符串 => NaN
var result = Number(""); // 空字符串 转化为数字 => 0
var result = Number(" "); // 空格字符串 转化为数字 => 0
var result = Number(true); // 转化为数字 1
var result = Number(false); // 转化为数字 0
var result = Number(null); // 转化为数字 0
var result = Number(undefined); // 转化为数字 NaN
2.String()
//与该方法一个意思 console.log(result, typeof result);
var result = String(100); // 转化为字符串 "100"
var result = String(true); // 转化为字符串 "true"
var result = String(false); // 转化为字符串 "false"
var result = String(null); // 转化为字符串 "null"
var result = String(undefined); // 转化为字符串 "undefined"
3、Boolean()
注意:
1.只要有实际内容转化为布尔值 都为true, 如果没有实际内容或空内容转化为布尔值都是false;
2.NaN,0,"",null,undefined 转化为布尔值为false,其他的都为true。(!!空格 和空字符串 不一样,空格是具有实际意义的!空字符串没有)
// 数字转布尔
var result = Boolean(2); // 转化为布尔值 => true
var result = Boolean(1); // 转化为布尔值 => true
var result = Boolean(-1); // 转化为布尔值 => true
var result = Boolean(Infinity); // 转化为布尔值 => true
var result = Boolean(0); // 转化为布尔值 => false
var result = Boolean(NaN); // 转化为布尔值 => false
// 字符串转布尔
var result = Boolean("100"); // 转化为布尔值 => true
var result = Boolean("100a"); // 转化为布尔值 => true
var result = Boolean(" "); //空格 转化为布尔值 => true
var result = Boolean(""); //空字符串 转化为布尔值 => false
// null undefined 转布尔
var result = Boolean(null); //空值 转化为布尔值 => false
var result = Boolean(undefined); //未定义 转化为布尔值 => false
4、parseInt() 找到第一个非数字之前的数 将其转化为整数 (变相用法 向下取整)
var num = parseInt("100px");//100
var num = parseInt("100.55px");//100
var num = parseInt(100.55);//100
var num = parseInt("a100.55px");//NaN
var num = parseInt(true); //NaN
var num = parseInt(false); //NaN
var num = parseInt(undefined); //NaN
var num = parseInt(null); //NaN
parseInt可以接收第二个参数,用于指定底数(进制数)。如果知道要解析的值是十六进制,那么可以传入16作为第二个参数,以便正确解析:
var num = parseInt("0xAF",16); //175
通过第二个参数,可以极大拓展转换后获得的结果类型。
var num =parseInt("10", 2); //2, 按二进制解析
var num =parseInt("10", 8); //8, 按八进制解析
var num =parseInt("10", 10); //10, 按十进制解析
var num =parseInt("10", 16); //16, 按十六进制解析
5、parseFloat() 找到第一个非数字之前的数 将其转化为number类型(保留小数) (变相用法 向下取整) 若字符串表示整数(没有小数点或小数点后面只有0,则返回整数
var num = parseFloat("100px");//100
var num = parseFloat("100.55px");//100.55
var num = parseFloat(100.55);//100.55
var num = parseFloat("a100.55px");//NaN
----------------------------------------------------end-----------------------------------------------------------------------------