我正在快递中查看respons.js的代码并遇到了这段代码:
res.contentType =
res.type = function(type){
return this.set('Content-Type', ~type.indexOf('/')
? type
: mime.lookup(type));
};
我的问题是~
运算符在type.indexOf()
语句前面做了什么?它的用途是什么,何时使用?
答案 0 :(得分:9)
这是一个bitwise NOT,虽然它在这里使用是非常不透明的。
它用于将-1
结果从indexOf
(即未找到字符串)转换为0
,这是一个假值(自~-1 == 0
起,并且0
在布尔上下文中为false),它允许所有其他值保持真实。
它可以更清楚地写成(type.indexOf('/') != -1) ? ... : ...
用简单的英语说,“将-1
结果(即,如果找不到/
)从indexOf
视为false
;否则,处理结果作为true
“。
答案 1 :(得分:0)
代字号是按位 NOT运算符,就像!
是逻辑 NOT运算符一样。您可能需要查看Mozilla Developer Network上运营商的documentation的完整用法和含义。