【问题标题】:The OR Operator (|) in Javascript does the same as parseInt? [duplicate]Javascript 中的 OR 运算符 (|) 与 parseInt 的作用相同吗? [复制]
【发布时间】:2012-01-14 20:09:54
【问题描述】:

可能重复:
Using bitwise OR 0 to floor a number

对两个表达式执行按位或,例如:

console.log(12.22|0) // output --->12

小数点在哪里? 和parseInt函数一样

parseInt(12.22)  // output --->12

它是如何工作的?

【问题讨论】:

  • 我猜按位或会导致双精度 12.22 在应用按位或运算之前自动转换为整数,因为您不能对浮点数进行按位或。 12.22|1 == 13. 投票结束stackoverflow.com/questions/7487977/…
  • 如何结束我的问题?我是新来的。
  • 您不能简单地关闭问题。您可以通过单击最佳答案旁边的绿色“确定”来接受答案。要关闭答案,社区必须投票支持关闭。

标签: javascript


【解决方案1】:

parseInt 在解析“12px”等字符串的情况下很有用。

例如:

pasrseInt("12px"); // returns 12

但是,这对于按位 OR 没有任何意义:

"12px" | 0; // returns 0

执行按位 OR 更像是将 Math.floor() 应用于数字 - 在 Javascript 中,按位运算适用于 32 位整数。

【讨论】:

  • 与应用Math.floor 类似但不一样。它更接近于应用Math.trunc,尽管要快得多,因为它不是一个可以替换的功能。这是一个无法替代的运算符。它仍然与Math.trunc 不同,因为它将为NaN | 0Math.trunc(NaN) 返回不同的值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
相关资源
最近更新 更多