Javascript 在JS中查找类型转换规则
我正在寻找一套具体的规则,以确定什么时候自动进行类型转换。我正试图为新开发人员提供一些指导,例如,刚刚提出:Javascript 在JS中查找类型转换规则,javascript,casting,Javascript,Casting,我正在寻找一套具体的规则,以确定什么时候自动进行类型转换。我正试图为新开发人员提供一些指导,例如,刚刚提出: 90 > '100' // int compare '90' > 100 // int compare '90' > '100' // string compare 至于为什么,我能想到的唯一答案是“因为”:请注意,'026'
90 > '100' // int compare
'90' > 100 // int compare
'90' > '100' // string compare
至于为什么,我能想到的唯一答案是“因为”:请注意,
'026'<24
在某些浏览器中可能会返回true,因为字符串被视为八进制数(在本例中为22)
理想情况下,您希望始终手动键入cast。使用a=''+a
转换为字符串,或a=parseInt(a,10)代码>转换为整数
这应该是解释,而不是试图解释自动类型转换注意,'026'<24
在某些浏览器中可能会返回true,因为字符串被视为八进制数(在本例中为22)
理想情况下,您希望始终手动键入cast。使用a=''+a
转换为字符串,或a=parseInt(a,10)代码>转换为整数
这应该是解释,而不是试图解释自动类型转换如果你真的想了解发生了什么,那么你应该阅读规范:
关于下列事项的说明:
类型(x)用作“x类型”的简写
如果您真的想了解发生了什么,那么您应该阅读规范:
关于下列事项的说明:
类型(x)用作“x类型”的简写
了解这些规则会很有趣,但我的指导原则是永远要明确。如果希望字符串被视为int,请将其设为int。如果没有其他原因,除了可读性。了解这些规则会很有趣,但我的指导原则是要始终明确。如果希望字符串被视为int,请将其设为int。如果不是因为可读性以外的原因,也可以使用a^0
或a*1
,如果您为;)@JuicyScript为什么不仅仅是+a
?如果您为;)做事情,也可以使用a^0
或a*1
)@JuicyScript为什么不干脆+a
?