javascript中的取反再取反~~没有意义
2014-04-06 00:00
274 查看
操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,实际上在JS中可以将浮点数变成整数。
如上,如果没有~~,那么随机得到的是小数,而且是将小数的小数部分去掉,保留整数。如上面i=7,j=7。然而在C中并不存在这种机制,C中对一个浮点数(float)是不能按位取反的,而且C中可以用强制类型转换(而JS中则没有这种机制,浮点数转整数)达到同样的目的(舍弃小数部分,保留整数部分)。
<html> <script> var myArray = new Array(); myArray.push("a"); myArray.push("b"); myArray.push("c"); myArray.push("d"); //现在要随机从数组中取出一个元素 var random = myArray[~~(Math.random()*myArray.length)]; //Math.random()返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) var i = 7.94; i = ~~i; alert(i); var j = 7.34; j = ~~j; alert(j); </script> </html>
如上,如果没有~~,那么随机得到的是小数,而且是将小数的小数部分去掉,保留整数。如上面i=7,j=7。然而在C中并不存在这种机制,C中对一个浮点数(float)是不能按位取反的,而且C中可以用强制类型转换(而JS中则没有这种机制,浮点数转整数)达到同样的目的(舍弃小数部分,保留整数部分)。
相关文章推荐
- javascript中的取反再取反~~没有意义
- 1j2ee即web项目,严格意义上来说,没有jsp代码,只有class文件、html文件、javascript文件。2 基于extjs框架的项目怎么怎么查看在浏览器中展示的最终html页面的代码 3
- javaScript 调用构造函数 Array() 时没有使用参数, length总是0
- Javascript中没有引用传递,只有按值传递
- JavaScript基础 window.open(url,name,options) 没有菜单栏,没有工具栏
- 为什么jsp页面使用javascript代码没用,连alert也没有y
- 在网页中使用javascript打开没有最大化、最小化和关闭按钮的窗口
- javascript CDATA的意义
- 在网页中使用javascript打开没有最大化、最小化和关闭按钮的窗口
- 关于JavaScript中apply与call的用法意义及区别(转)
- Javascript中没有块级作用域(模仿)
- 建立在不同价值观上的讨论没有任何意义的
- JavaScript 没有函数重载&Arguments对象
- 在没有类的情况下,JavaScript如何创建对象、实现继承?
- 用javascript把同一行中内容相同的单元格合并。— — — —即GridView中没有数据时,显示“抱歉,没有数据。”
- 在AngularJS中学习javascript的new function意义及this作用域的生成过程
- 如何显示亚马逊的产品在您的网页没有使用JavaScript
- 一次没有意义的优化
- 关于JavaScript中apply与call的用法意义及区别 (转)
- JavaScript中的this陷阱的最全收集--没有之一