强制转换主要指使用Number()、String()和Boolean()三个函数,手动将各种类型的值,分别转换成数字、字符串或者布尔值。
一、Number()
使用Number函数,可以将任意类型的值转化成数值。参数是原始类型值,正常转化成数值;参数是单个数值的数组,也可转化成数值。
当Number方法的参数是对象时,将返回NaN,其转换规则为:
第一步,调用对象自身的valueOf方法。如果返回原始类型的值,则直接对该值使用Number函数,不再进行后续步骤。
第二步,如果valueOf方法返回的还是对象,则改为调用对象自身的toString方法。如果toString方法返回原始类型的值,则对该值使用Number函数,不再进行后续步骤。
第三步,如果toString方法返回的是对象,就报错。
二、String()
使用String函数,可以将任意类型的值转化成字符串。参数是原始类型值
数值:转为相应的字符串;字符串:转换后还是原来的值;布尔值:true转为字符串"true",false转为字符串"false";undefined:转为字符串"undefined";null:转为字符串"null"。
当String方法的参数是对象时,返回一个类型字符串,如果是数组,返回该数组的字符串形式,其转换规则为:
-
先调用对象自身的
toString方法。如果返回原始类型的值,则对该值使用String函数,不再进行以下步骤。 -
如果
toString方法返回的是对象,再调用原对象的valueOf方法。如果valueOf方法返回原始类型的值,则对该值使用String函数,不再进行以下步骤。 -
如果
valueOf方法返回的是对象,就报错。
三、Boolean()
Boolean函数可以将任意类型的值转为布尔值。
除了undefined、null、-0或+0、NaN、''(空字符串)这五个值的转换结果为false,其他的值全部为true。
遇到以下三种情况时,JavaScript 会自动转换数据类型,即转换是自动完成的,用户不可见。自动转换的规则是预期什么类型的值,就调用该类型的转换函数。
1、不同类型的数据互相运算。
2、对非布尔值类型的数据求布尔值
3、对非数值类型的值使用一元运算符(即+和-)
本文详细介绍JavaScript中使用Number()、String()和Boolean()函数进行数据类型强制转换的规则,包括数值、字符串、布尔值及对象的转换过程。
1352

被折叠的 条评论
为什么被折叠?



