【问题标题】:what's the difference if a number with parenthesis or without parenthesis? [duplicate]带括号或不带括号的数字有什么区别? [复制]
【发布时间】:2016-05-02 12:28:38
【问题描述】:

(8)和8的类型都是数字,但是调用toString()方法时,(8)成功却8失败,为什么?

【问题讨论】:

  • 当你做"8".toString(2)时你会得到什么?
  • 当你用括号覆盖一个数字时,那将成为一个表达式。
  • 在8之后给一个空格,否则将被视为浮点数

标签: javascript


【解决方案1】:

8(8) 的区别在于,前者是纯数字,后者是JavaScript 表达式。异常的问题是,你写的方式:

8.toString(2);

这里,8. 被视为浮点数或小数,这会导致语法错误。因为它把它当作小数,所以给出一个小数会产生正确的结果:

» 8.0.toString(2);
« "1000"

【讨论】:

  • 8 也是一个表达式。
  • @georg 但它被视为浮点数。
【解决方案2】:
8.toString() // Won't work

这里. 被视为浮点数表示。因此,如果要将非浮点数转换为字符串,只需在数字后加一个空格

8 .toString(); // Will work

如果是浮点数,则可以直接调用toString

8.2.toString(); // Will work even it doesn't have the space
8..toString(); // Will also work

但我建议您使用括号来提高代码的可读性。

括号中的数字是表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2021-06-29
    相关资源
    最近更新 更多