范例转换
隐式范例转换
基础运算符
/
-
%
++
--
==
!=
上面的运算符都邑触发隐式范例转换.
特别的+
优先举行 字符串衔接 操纵.
var a = '20';
typeof (+a) ; // Number 20;
var a = '20';
var b = 20;
typeof (a+b) ; // String 2020;
强迫范例转换
Boolean(value)
当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回 true。
假如该值是空字符串、数字 0、undefined 或 null,它将返回 false。
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
不同之处)
栗子:
Number('11hi');// NaN
parseInt('11hi'); // 11
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number("1.2") 1.2
Number("12") 12
Number("1.2.3") NaN
Number(new object()) NaN
Number(50) 50
String() 函数
把任何值转换成字符串
和toString
的区分
运用 String()
时, null
和 undefined
值强迫范例转换能够天生字符串而不引发毛病:
挪用toString()
时, null
和 undefined
发作毛病.
栗子:
String(null);// 'null'
String(undefined) // 'undefined'
null.toString(); // 报错
undefined.toString(); // 报错