2014-07-03 99 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

相關問題