运算符 // 在 JavaScript 中:5.0 // 2.0 = 5?

Posted

技术标签:

【中文标题】运算符 // 在 JavaScript 中:5.0 // 2.0 = 5?【英文标题】:Operator // in JavaScript : 5.0 // 2.0 = 5? 【发布时间】:2011-12-20 13:24:39 【问题描述】:

javascript 中有 // 运算符吗?

因为在 Python 中我们有:

5 // 2.0 # => 2.0
5 / 2.0  # => 2.5

所以我尝试了 JavaScript:

5.0//2.0 

我得到了5!那里发生了什么?

我读到 JavaScript 中没有 // 运算符之类的东西。在这种情况下,为什么我没有从词法分析器中得到一个异常,或者更好的是,一个错误?

我用了这条线:

document.write(eval("5.0//2.0"));

在 Firefox 3.6.23 中。

【问题讨论】:

正如您通过查看语法高亮可能已经看到的那样,// .. 是 JavaScript 中注释的标记。另外,如果您需要英语提示,请访问english.stackexchange.com 这是我第一次看到通过语法高亮回答的问题。 请参阅 this question 了解 JavaScript 中的整数除法 我认为 Yksin 在看到自己的错误后回到 SO 感到羞愧。 @Yksin:回来,选择一个答案,我们都会犯愚蠢的错误 【参考方案1】:

在 JavaScript 中,// 不是运算符,它表示注释。

【讨论】:

【参考方案2】:

// 用于 JavaScript 中的注释。

【讨论】:

【参考方案3】:

// 是 javascript 中的注释。

试试:

   5 / 2; //yields 2.5
   Math.floor(5/2); //yields 2

也不要使用 eval。

只要document.write(5/2);

【讨论】:

+1,只回答提到// 做了什么以及如何进行整数除法。 最后一行的额外括号是什么? @AntonyHatchkins 你在说什么? @AntonyHatchkins 很好^_^ 我已经修好了。在我看来,javascript 的语法太笨拙(例如+a 无法将字符串转换为数字),无法在简单答案中使用多余的符号。【参考方案4】:

// 开始评论。要进行整数除法,首先使用/ 执行常规除法,然后将其舍入。这可以通过&-1^0|0~~ 来完成,按照我的笔记本电脑上测量的从快到慢的顺序。前三个之间有可衡量的差异,但很小。相比之下,最后一个真的很慢。

将它们放在一起,5/2&-1 将产生 2。它向零舍入。

【讨论】:

以上是关于运算符 // 在 JavaScript 中:5.0 // 2.0 = 5?的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中使用 sizeof 运算符分配浮点数据类型(5.0)而不是 4 个字节 [重复]

Qt 5.0:向 Javascript 公开 C++ 方法

JavaScript 计算属性

python 算术运算

Q新闻丨Linux基金会迎来JavaScript社区;开源搜索引擎Elasticsearch 5.0版发布;Rust 2017…

ABP Framework 5.0 RC.1 新特性和变更说明