为什么在JavaScript
字符串到数字转换为数字
在比较字符串和数字时,JavaScript采用以下规则:
[两个操作都是字符串比较,如果是字符串比较,则否则是符号。 resulting in a numeric comparison.
This behavior manifests in interesting scenarios such as:
- "90" > "100" (strings, string comparison)
- "90"
Explicit Conversion vs.隐式胁迫
是否使用显式转换(例如,parseint())或依靠隐式胁迫是一个优先问题。
依靠自动类型的类型creverion可接受。它允许轻松比较而无需手动修改字符串。- 显式转换:
其他人更喜欢使用ParseInt()等函数将字符串明确转换为数字。这确保考虑了整个字符串,可以防止潜在的混淆或错误。- 编号转换选项
如果您决定将字符串明确转换为数字,则您在parseint(parseint()之外都有几个选项: parseint()和parsefloat()分别。
unary
Note:
'' returns 0, not NaN.
Number(str)- : Equivalent to implicit conversion.
Bitwise OR with Zero (str|0)- : Coerces the string to an integer and converts NaN to 0。在JavaScript中进行了比较,因为该语言能够动态地将操作数转换为不同类型。隐式强制和明确转换之间的选择取决于个人喜好和编程样式。通过了解这些机制,您可以编写更多可靠和可靠的代码。