永发信息网

javascript 中双波浪线 是做什么处理的

答案:3  悬赏:0  手机版
解决时间 2021-01-27 07:39
  • 提问者网友:杀生予夺
  • 2021-01-27 04:48
javascript 中双波浪线 是做什么处理的
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-01-27 05:06
1.在javascript中 :
按位“非”运算符 (~)
对一个表达式执行按位“非”(取反)操作。

result = ~ expression

参数
result 任何变量; expression 任何表达式。

说明
所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值:

如果将它用于 undefined 或 null 表达式,则产生一个运行时错误。
对象被转换成字符串。
如果可能,字符串被转换为数字。如果不能,则产生一个运行时错误。
Boolean 值被当作数字(如果是 false 则为 0,如果是 true 则为 1)。
用该运算符来生成数字。

~ 运算符查看表达式的二进制表示法的值,并执行按位非操作。该操作的结果如下所示:

0101 (expression)
----
1010 (result)
表达式中的任何一位为 1,则在结果中相应位变为 0。表达式中的任何一位为 0,则在结果中相应位变为 1。
全部回答
  • 1楼网友:渡鹤影
  • 2021-01-27 06:27
js中波浪线运算符"~"的作用是将数字转化为有符号32位整数并作位取反, 位取反即把数字转换为2进制补码然后把0和1反转. 对一个数字取反2次会变成原来的数字, 于是双波浪线的作用就是把一个小数舍弃小数点转换为整数, 在数字较小转换为32位整数时不会溢出的情况下可以当作Math.floor的偷懒写法. 不过更一般的写法是"num | 0", 即位或0, 在位运算上不会改变数字但可以快速的转换为整数, 在各种将数字转换为整数的写法中位或0速度最快
  • 2楼网友:煞尾
  • 2021-01-27 06:21
1.在javascript中 : 按位“非”运算符 (~) 对一个表达式执行按位“非”(取反)操作。 result = ~ expression 参数 result 任何变量; expression 任何表达式。 说明 所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值: 如果将它用于 undefined 或 null 表达式,则产生一个运行时错误。 对象被转换成字符串。 如果可能,字符串被转换为数字。如果不能,则产生一个运行时错误
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯