强制转换强制转换主要是指使用Number()、String()和Boolean()这三个函数,将各种类型的值手动转换为数字、字符串或布尔值。Number()使用Number函数将任何类型的值转换为数值。(1)原始类型值原始类型值的转换规则如下。//Value:转换后的原值Number(324)//324//String:如果可以解析为值,则转换为对应的值Number('324')//324//String:if不能解析为值,返回NaNNumber('324abc')//NaN//空字符串转为0Number('')//0//布尔值:true转为1,false转为0Number(true)//1Number(false)//0//undefined:转换为NaNNumber(undefined)//NaN//null:转换为0Number(null)//0Number函数将一个字符串转换为一个值,这就多了比parseInt函数更严格。基本上只要有一个字符不能转成数字,整个字符串都会转成NaN。parseInt('42cats')//42Number('42cats')//NaN(2)objects简单的规则是当Number方法的参数是一个对象时,它将返回NaN除非它是一个包含单个数值。Number({a:1})//NaNNumber([1,2,3])//NaNNumber([5])//5String()String函数可以将任何类型的值转换成字符串,转换规则如下面所述。String()String函数可以将任意类型的值转换为字符串,转换规则如下。(1)原始类型值:转换为对应的字符串。字符串:转换后的原始值。Boolean:true转换为字符串“true”,false转换为字符串“false”。undefined:转换为字符串“undefined”。null:转换为字符串“null”。String(123)//"123"String('abc')//"abc"String(true)//"true"String(undefined)//"undefined"String(null)//"null"(2)如果objectString方法的参数是一个对象,则返回类型string;如果是数组,则返回数组的字符串形式。String({a:1})//"[objectObject]"String([1,2,3])//"1,2,3"Boolean()Boolean()函数可以将任何类型的值转换成布尔值价值。它的转换规则比较简单:除了以下五个值,转换结果为false,其他值均为true。undefinednull0(包含-0和+0)NaN''(空字符串)Boolean(undefined)//falseBoolean(null)//falseBoolean(0)//falseBoolean(NaN)//falseBoolean('')//false
