~ 在 JavaScript 函数中的含义
Meaning of ~ in javascript function
本文关键字:函数 JavaScript 更新时间:2023-09-26
我正在阅读这个javascript函数:
if (~['bacon', 'burger'].indexOf(type)) {
this.res.writeHead(200, { 'Content-Type': 'text/plain' });
this.res.end('Serving ' + type + ' sandwich!'n');
}
但我不确定当我使用它时~
有人知道什么意思或什么意思?
~
是按位的 NOT 运算符。它切换数字的每一位。
-
0
变得-1
. -
-1
变得0
. - 没有其他数字变为零。
这意味着
if (~['bacon', 'burger'].indexOf(type)) {
是一种令人困惑的写作方式
if (['bacon', 'burger'].indexOf(type) == -1) {
indexOf
在找不到字符串时返回-1
。
~ is a Bitwise NOT operator...
阅读更多
在这种情况下,~
允许该代码将返回值 .indexOf()
(一个数字,指示搜索值在数组中的位置(转换为布尔值。换句话说,它采用"值在哪里"结果并将其转换为"是列表中的值"结果。
如何? 好吧,当找不到值时,.indexOf()
返回-1
,如果找到值,则返回大于或等于零的数字。~
运算符将其数值参数转换为 32 位整数,然后反转每个位。这个过程恰好将-1
转换为0
,任何正整数变为某个负非零值,0
变为-1
。 当这些结果随后作为布尔值进行检查时,原始-1
将被false
(因为0
是"falsy"(,而大于或等于零的整数将被true
(因为它们都转换为某个非零值(。
按位 NOT (~ a( 反转其操作数的位。
例
-
9(以 10 为基数(= 00000000000000000000000000001001(以 2 为基数(
--------------------------------
-
~9(基数 10(= 11111111111111111111111111110110(基数 2(= -10(基数10(
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery