- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近发现了这段JavaScript代码:
Math.random() * 0x1000000 << 0
我知道第一部分只是生成 0 到 0x1000000 (== 16777216) 之间的随机数。
但是第二部分看起来很奇怪。执行位移 0 有何意义?我不认为它会做任何事情。然而,经过进一步调查,我注意到移位 0 似乎 chop 了数字的小数部分。此外,无论是右移、左移,还是无符号右移,都没有关系。
> 10.12345 << 0
10
> 10.12345 >> 0
10
> 10.12345 >>> 0
10
我使用 Firefox 和 Chrome 进行了测试,行为是相同的。那么,这种观察的原因是什么?这只是 JavaScript 的一个细微差别,还是其他语言中也会出现这种情况?我以为我理解了位移位,但这让我感到困惑。
最佳答案
你是对的;它用于 chop 值。
>>
起作用的原因是它仅对 32 位整数进行操作,因此该值被 chop 。 (在此类情况下,它也常用于代替 Math.floor
,因为按位运算符的运算符优先级较低,因此您可以避免出现困惑的括号。)
由于它仅对 32 位整数进行操作,因此它也相当于四舍五入后带有 0xffffffff
的掩码。所以:
0x110000000 // 4563402752
0x110000000 >> 0 // 268435456
0x010000000 // 268435456
但这不是预期行为的一部分,因为 Math.random()
将返回 0 到 1 之间的值。
此外,它与 | 执行相同的操作。 0
,更常见。
关于javascript - 为什么移动 0 会 chop 小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46584664/
我正在使用 onclick javascript 方法,动态内容如下: onclick="adviceEvent('${advice?.content}');" 建议内容介于字符串之间,例如: Che
我想 chop 一个具有字符限制的字符串,并且最后一个字符应该是空格的条件(这样我就没有被 chop 的单词) 示例: var sentence = "The string that I want t
我正在使用省略号 chop 文本并在工具提示上显示整个文本。如果文本溢出,则仅显示工具提示。工具提示在 Chrome 中看起来不错,但在 IE 和 Firefox 中却不行。在 IE 中,工具提示文本
我正在使用带有 rails ( http://jrvis.com/trunk8/#toggle ) 的 trunk8 jquery 插件,它只会 chop 前几个句子,直到第一个中断空格。这是我的代码
Readmore Js 只折叠 div block 而不折叠文本。请帮助我 chop 文本和 div 容器,而不仅仅是 div。非常感谢 London is the most popul
我有一个 div,它会动态填充一些可能包含或不包含链接的文本。 例如: Welcome to Stackoverflow. Someone will provide an answer to
作为一些背景 使用 Material UI Multiple Select,您可以 chop 选择后显示的值,而不是转到另一行(通过将 renderValue 设置为 .join selected 选
有人可以向我解释一下为什么不能将包含空格的字符串作为参数传递到 JavaScript 函数中吗? 这是我的代码,显示了这个问题,只需将鼠标悬停在链接上,您就会看到只有“mario”显示为标题,而不是“
我在打印模块内容时遇到了问题,这发生在所有浏览器上。当我打印模态内容时,它只预览第一页,第一页之后的任何内容都会被切断。我已经尝试在 Chrome 打印模拟器中进行调试,但仍然无法找到解决方案。 在某
我正在尝试检测是否使用 JS chop 了文本。解决方案mentioned here除了下面的边缘情况外,效果很好。您会注意到,如果文本在视觉上被 chop ,则鼠标悬停的第一个 block 将返回
我制作的模态面临一个罕见的问题。我有一个iframe,可以在该模式下加载嵌入式youtube视频,它在为测试该视频而创建的单独HTML文件(空白)上运行良好。 当我尝试将其加载到实际网站的本地模板上时
我有一个 Javascript,它从两个 HTML 下拉列表中读取文本,删除所有特殊字符,然后将文本存储在变量中。下拉列表中的文本来自 JSON 文件。问题是,只要下拉列表中的文本有撇号,Javasc
在node和chrome中,下面的代码只给了我10个堆栈帧,而我期望的是100个。有什么方法可以打印整个堆栈吗? function blowUp(n) { if(n > 100) {
所以我有一个对象数组,问题是返回的名称很长。我怎样才能让名字结果看起来像 returnedArray: [ {name:'reallyy..',age:'28',hobby:'blah'},{name
我遇到了一些字符串溢出其容器的问题。我当然可以使用溢出:隐藏,但它看起来不太好,因为我更喜欢文本溢出:省略号。然而,对此的跨平台支持充其量是不确定的,而且我发现的现有解决方案不允许字符串在包含空格时换
我正在编写 jQuery 应用程序,但遇到了障碍。 我需要我的双行描述简介能够在浏览器大小调整时随着文本回流而做出响应。下面的示例成功地收缩了字符串的大小,并在缩小浏览器时替换为省略号。但是当您扩大浏
当前版本: def chop(ar,size): p=len(ar)/size for i in xrange(p): yield ar[(i*size):((i+1)
My Codepen if("matchMedia" in window) { if(window.matchMedia("(max-width: 533px)").matches) {
我这里遇到了一些问题。 我基本上是在 div 中循环项目,以便每个项目都有一个可以使用的键,这样当单击图标时,就会出现一个编辑模式并填充所选项目的数据。 这可行,但我想为我的跨度添加功能 {{ $no
我有一个代码块,其中包含以下形式的行: 在接收端,我有一个像这样抓取数据的文档: $title = $_POST['title']; 这将被插入到数据库中,但任何包含撇号的“标题”都会在撇号处被
我是一名优秀的程序员,十分优秀!