当前位置: 首页 > 面试题库 >

波浪号在表达式之前会做什么?

计胤
2023-03-14
问题内容

var attr = ~’input,textarea’.indexOf( target.tagName.toLowerCase() )
? ‘value’
: ‘innerHTML’

我在一个答案中看到了它,而我从未见过。

这是什么意思?


问题答案:

~是按位运算符,用于翻转其操作数中的所有位。

例如,如果您的数字为1,则其对IEEE754浮点数JavaScript如何处理数字的二进制表示将是…

0011 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

因此~将其操作数转换为32位整数(JavaScript中的按位运算符会执行此操作)…

0000 0000 0000 0000 0000 0000 0000 0001

如果它是负数,则将其存储为2的补码:将所有位取反并加1。

…然后翻转所有位…

1111 1111 1111 1111 1111 1111 1111 1110

那么,它的用途是什么?什么时候可以使用它?

它有很多用途。如果您正在写低级的东西,这很方便。如果您对应用程序进行了概要分析并发现了瓶颈,则可以通过使用按位操作(作为更大的包装中的一种 可能的
工具)来提高性能

这也是一个(一般)不清楚绝招打开indexOf()的发现返回值放入truthy(同时使未找到为 falsy)人们通常会增加一倍它用它截断数字为32位(和丢弃其小数代替它的副作用,实际上与Math.floor()正数相同)。

我说不清楚,因为目前尚不清楚它的用途。通常,您希望您的代码与阅读它的其他人清楚地交流。虽然使用起来~可能 看起来很酷,但出于自身利益 考虑 ,通常太聪明了。:)

现在JavaScript具有Array.prototype.includes()和也不再相关String.prototype.includes()。这些返回布尔值。如果您的目标平台支持它,则应首选此方法来测试字符串或数组中是否存在值。



 类似资料:
  • 问题内容: 搜索角色并不容易。我查看了一些CSS,发现了这个 这是什么意思? 问题答案: 该选择器实际上是[通用同级组合器(在选择器级别4中重命名为后续同级组合[器): 通用同级组合器由分隔两个简单选择器序列的“波浪号”(U+007E,〜)字符组成。这两个序列所表示的元素在文档树中共享相同的父对象,而第一个序列所表示的元素在第二个所表示的元素之前(不一定紧接)。 考虑以下示例: 与第4个和第5个列

  • 问题内容: 我一直以为并且是完全相同的,因此可以互换使用。今天,当我尝试在共享服务器上安装与memcached的python绑定 pylibmc时 ,使用的错误给了我,但没有给我 。我想说明原因。 libmemcached 是 pylibmc 的要求。我在主目录下安装了 libmemcached, 因为服务器上没有root。结果,要安装 pylibmc ,我需要确保安装脚本知道在哪里可以找到 li

  • 问题内容: 我今天正在检查一个在线游戏物理库,遇到了 运算符。我知道单个〜是按位NOT,这会使 变成NOT的NOT,这会返回相同的值,不是吗? 问题答案: 它删除小数点后的所有内容,因为按位运算符会将其操作数隐式转换为带符号的32位整数。无论操作数是(浮点)数字还是字符串,这都有效,并且结果是数字。 换句话说,它产生: 仅当 x 在-(2 31)和2 31-1之间。否则,将发生溢出,并且数字将“环

  • 本文向大家介绍R中波浪号(〜)的用途是什么?,包括了R中波浪号(〜)的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 Tilde运算符用于定义统计模型公式中因变量和自变量之间的关系。代字号运算符左侧的变量是因变量,代字号运算符右侧的变量被称为自变量。因此,代字号运算符有助于定义因变量取决于代字号运算符右侧的自变量。 示例 此处,y是因变量,x1,x2和x3是自变量。

  • 搜索字符并不容易。我在看CSS的时候发现了这个 这是什么意思?

  • 问题内容: 我在一些代码中看到了这一点,但我不知道它的作用: 什么是运营商做? 问题答案: 那是一个双重的非按位运算符。用作的更快替代品