2014-07-03 93 views
2

在许多JavaScript源代码(主要是,配置文件),用类似的代码〜fs.readdirSync在配置文件中的含义是什么?

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。

+0

这是位NOT,不异。 –

+0

你有使用这个模块的具体例子吗?我不确定为什么有人会这样做,因为〜[] === -1,但也许看到内部的地图功能会有所帮助。 – aembke

+0

总体说法很可能更多。你能提供一个例子吗? –

回答

1

~bitwise NOT运算符NOT。 x中的每一位都在~x之间反转。例如:

x = 00011011 
~x = 11100100 

或者,它相当于做与0xFFFFFFFF(所有1位)XOR:

 00011011 
XOR 11111111 
    -------- 
    = 11100100 
+0

我检查了javascript逻辑运算符,但没有找到它https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators。而且,整行代码的含义是什么?谢谢 – Wilbeibi

+0

这不是一个逻辑运算符,它是一个按位运算符。不同之处在于,逻辑运算符在整个操作数上工作,并返回true或false,而按位运算符处理操作数的每一位并返回一个整数。 – Frxstrem

相关问题