`
yanfaguanli
  • 浏览: 659925 次
文章分类
社区版块
存档分类
最新评论

javascript中的取反再取反~~

 
阅读更多

操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,实际上在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中的取反再取反~~没有意义

    操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,下面有个不错的示例,大家可以参考下

    Javascript 按位取反运算符 (~)

    代码如下:result = ~ 【数字】 所有一元运算符(如 ~ 运算符)都按照下面的...表达式中的任何一位为 1,则结果中的该位变为 0。 表达式中的任何一位为 0,则结果中的该位变为 1。 下面的示例阐释了位非 (~) 运算符的

    精通JavaScript

    2.选择浏览器的“工具”-“安全”-“本地Intranet”-“自定义级别”-“活动脚本”中选用“禁用”单选框 3.在浏览器中输入下述地址:http://localhost/1.2.htm • 1.1.htm 多段代码相互调用 • 1.2....

    JavaScript布尔运算符原理使用解析

    用于将任何值转换为布尔值后再变为相反值,即true变false,false变true 取反运算符对以下六个值返回false,其余都返回true: undefined null ” false 0 NaN 如果对一个值取反两次,则相当于将其转换为了布尔值,与...

    微软JavaScript手册

    再从该列表中选择要查看的主题。在打开所选主题后,就可以方便地链接到相关章节。 请尽情浏览 JScript 语言参考的各个部分,你会发现 JScript 语言有多么丰富。 特性 描述 JScript 特性(非-ECMA) JScript ...

    JavaScript中的运算符种类及其规则介绍

    一、JavaScript运算符的种类 1、算术运算符:+ 、 – 、* 、 / 、 % 、 -(一元取反) 、 ++ 、 — 2、等同全同运算符:== 、 ===、 !== 、 !=== 3、比较运算符:&lt; 、 &gt; 、 &lt;= 、 &gt;= 4、字符串运算符:&lt; 、 ...

    javascript文档

    再从该列表中选择要查看的主题。在打开所选主题后,就可以方便地链接到相关章节。 请尽情浏览 JScript 语言参考的各个部分,你会发现 JScript 语言有多么丰富。 特性 描述 JScript 特性(非-ECMA) JScript ...

    JavaScript通过canvas获取图片像素点并导出到文件转为RGB像素值HTML标签

    1.通过JS技术把获取已知图片的像素值 2.获取到像素值去除A通道干扰 3.把最终的像素值一维数组转换HTML文件格式并导出到文件 4.懂JS获取文件内容的技术人员可以通过JS获取导出的文件内容,赋值给HTML标签,这样图片就...

    精通javascript

    2.选择浏览器的“工具”-“安全”-“本地Intranet”-“自定义级别”-“活动脚本”中选用“禁用”单选框 3.在浏览器中输入下述地址:http://localhost/1.2.htm • 1.1.htm 多段代码相互调用 • 1.2....

    易语言-Cloudflare五秒防护中的jschl_answer加密源码分析 图文教程

    在JavaScript中取反的意思。 !![]大概翻译过来就是取反二次后他还是true! 那么+!![]中的+在JavaScript中是自增的意思,true一般都是正数那么此时true不就是1了嘛? 那么继续解析[]他本来就是没值的,他就是一个空...

    JavaScript 装逼指南(实用技巧写法)

    JavaScript 装逼指南转Boolean类型转Number类型parseInt短路表达式,弃用if-else另外一种undefined保留指定位数的小数点单行写一个评级组件金钱格式化标准JSON的深拷贝数组去重取数组中的最大值和最小值 如何写...

    javascript运算符——逻辑运算符全面解析

    前面的话 逻辑运算符对操作数进行布尔运算,经常...逻辑非对操作数转为布尔类型的转换类型与Boolean()转型函数相同,只不过最后再将其结果取反。而如果同时使用两个逻辑非操作符,实际上就会模拟Boolean()转型函数的行

    JavaScript中正则表达式判断匹配规则及常用方法

    JS作为一门常用于web开发的语言,必然要具备正则这种强大的特性,本文将对JS中的正则用法及常用函数进行一番总结

    浅谈JavaScript中的“!!”作用

    &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Document&lt;...js代码中有时会用到“!”,这个我们知道是取反,对于布尔类型会将其值true和false互

    javascript 二进制运算技巧解析

    1、原码、反码、补码,正数减法转补码加法 js 在进行二进制运算时,使用 32 位二进制整数,由于 js 的整数都是有符号数,最高位0表示正数,1表示负数,因此,js 二进制运算中使用的整数表达范围是 代码如下: -Math....

    通用javascript代码判断版本号是否在版本范围之间

    通用判断版本号是否在两者之间,也可以搭配判断是否大于某版本号,小于取反即可,本文给大家介绍通用javascript代码判断版本号是否在版本范围之间,需要的朋友参考下

Global site tag (gtag.js) - Google Analytics