這個問題不是很重要,但是,我發現當反斜槓記錄到控制檯時,值不會按預期輸出。Node.js關心反斜槓
請在終端中嘗試以下兩個示例來確認結果;我已經嘗試過版本0.10和0.12,並試圖用'UTF'替代UTF十六進制代碼和字符代碼等。行爲是一樣的。
例子一使用String.replace()
。我發現這種意外的行爲最初使用正則表達式,類似於.replace(/([*\-\[\] etc...])/g, '\\$&')
,但是,下面的代碼簡化了這種情況。其中
var bcks = '\\', str = 'Hello*';
console.log('Backslash', bcks, '\nString', str);
str.replace('*', bcks);
的輸出是下面的:
Backslash \
String Hello*
'Hello\\'
實施例2而在對象中的一個值使用反斜槓。在使用.replace(etc ...)
時也發現了這種情況,但在將其減少到以下之後,意外行爲仍然很明顯。
var tmp = {key: 'Hello\\'}; console.log(tmp); console.log(tmp.key);
其輸出如下:
{ key: 'Hello\\' }
Hello\
這可能是stdout
僅僅是這種行爲的原因,但如果不是這樣,那麼我擔心的是,這個問題是不是僅限於日誌記錄。
有人可以解釋這種行爲嗎?
編輯:在兩個示例中,在任何時候一個應該安慰串或對象,輸出雙反斜槓。
在這兩種情況下,當我運行代碼時,我會得到您所說的輸出。 – Quentin
那麼它輸出什麼呢? – Bergi
預期的行爲是每次都看到一個反斜槓。我會編輯我的帖子,使其更清楚一點。 –