运算符 // 在 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 个字节 [重复]
Q新闻丨Linux基金会迎来JavaScript社区;开源搜索引擎Elasticsearch 5.0版发布;Rust 2017…