Javascript中的值类型转换介绍

在Javascript中,-,*,,=,=,!=运算符,如果值类型和期望类型的双方运算符不一致,则Javascript将在操作后将值的两侧运算符转换为预期类型。当期望值为String时,Javascript将值转换为字符串。当期望值为数字时,Javascript将值转换为数字(如果不能转换为数值,则返回到南方),例如:



复制代码代码如下所示:

console.log(10 +猫); / / 10只猫

console.log(10 *猫); / /南,猫将被转换为南

console.log(10 +2); / / 102

console.log(10 2 ); / / 8

console.log(10 / 2 ); / / 5

console.log(10×2 ); / / 20

console.log(10×2 ); / / 20

console.log(10 2 ); / / 20





值类型转换规则



Javascript中的值转换规则可以参考表3-2。Javascript中的Javascript类型转换——权威指南:



当1.undefined转换为数字,结果是楠。

转换2.null成数后,结果是0。

三.空字符串在转换到数字后,结果为0。

将4 - 0转换成字符串后,结果为0 。

5。在结果为0之后,将空数组}改为数字。

6。数成员数组(如{ 9 })转换为数字和结果的计算值(9)。



当Javascript将字符串转换为数字时,有两个更有趣的规则:



1.javascript将删除字符串末尾删除空白字符,然后转化,使弦42可以成功地转换为数字42。

2。在开始和结束时删除空白字符,如果字符串仍然包含非数字字符,则字符串转换为南方。例如,3 m将转换为南。



实例uff1a



复制代码代码如下所示:

console.log(10×3 ); / / 30

console.log(10×3米); / /南,3米将被转换为南





价值类型转换与比较



在Javascript中,相等运算符(= =)使用涉及的转换价值:如果= =运算符两边的值类型不一致,然后将它们转换成一个一致的JS型后判断。需要注意的是,不同类型的值,经过类型转换可能是等价的,但这并不意味着结果= =运算符是真实的。一个简单的例子是未定义的错误:转换定义布尔后,结果都是错误的,但事实上,结果未定义= =假是假。



显式类型转换



Javascript类型的自动转换非常方便,但也容易导致代码维护等问题,为了使程序代码更加清晰,减少歧义,js程序中有时会使用显式类型转换:

复制代码代码如下所示:

编号(3)3

字符串(false)false

布尔({)} /真



在大多数情况下,用JS自动类型转换显式类型转换的结果是相同的;但有1个特殊情况:当无效或未定义将被自动转换为对象,JS会抛出TypeError错误;但是当明确无效或未定义为对象,JS会返回一个空对象:

复制代码代码如下所示:

console.log(对象(定义)); / /空对象

console.log(对象(空)); / /空对象



同时,如果为显式转换指定的类型不同于JS自动转换指定的类型,则结果不同。例如,前面提到的未定义的=假结果是false;如果显式指定的转换类型为布尔型,则结果为真:

复制代码代码如下所示:

console.log(定义= = false); / /假

console.log(布尔(定义)=布尔(假) / /真实);





使用类型自动转换



在js中,可以使用值类型的自动转换来实现与运算符显式转换相同的效果,例如:

复制代码代码如下所示:

console.log(假+ ); / /假

console.log(+假); / / 0

console.log(!!!3);