Javascript ~fs.readdirSync在配置文件中是什么意思?

Javascript ~fs.readdirSync在配置文件中是什么意思?,javascript,Javascript,在许多javascript源代码(主要是配置文件)中 process.env.NODE_ENV = ~fs.readdirSync(configPath).map(function(file) { console.log(file); console.log(file.slice(0, -3)); //The file is something like all.js. After use file.slice(0, -3) the output is like allj

在许多javascript源代码(主要是配置文件)中

process.env.NODE_ENV = ~fs.readdirSync(configPath).map(function(file) {
    console.log(file);
    console.log(file.slice(0, -3));
    //The file is something like all.js. After use file.slice(0, -3) the output is like alljavascri
    return file.slice(0, -3);
}).indexOf(process.env.NODE_ENV) ? process.env.NODE_ENV : 'development';
我的问题是,
~fs.readdirSync
是什么意思?这里的
~
看起来不像xor。

~
不是运算符。
x
中的每一位都在
~x
中反转。例如:

 x = 00011011
~x = 11100100
或者,它相当于使用
0xFFFFFFFF
(所有1位)执行异或:


它是按位NOT,而不是XOR。您有一个使用它的模块的具体示例吗?我不确定为什么会有人这样做,因为~[]=-1,但也许看到内部映射函数会有所帮助。很可能整个语句还有更多内容。你能提供一个例子吗?当然,示例代码已经更新。请参阅重复问题中Pointy的答案。我检查了javascript逻辑运算符,但没有找到它。那么,整行代码的含义是什么?谢谢,这不是逻辑运算符,而是位运算符。不同之处在于,逻辑运算符作用于整个操作数并返回true或false,而位运算符作用于操作数的每一位并返回整数。
     00011011
 XOR 11111111
     --------
   = 11100100