2015-11-19 130 views
-2

我發現節點v0.10有一定的行爲,我無法在Chrome中進行復制。它會自動將之前所有的\「NodeJS處理對象時的單引號

因此,這將是腳本和輸出:

var test = "'test"; 
var testObj = {test:test}; 

console.log(test); // => 'test 
console.log(testObj); // => {'test':'\'test'} 

在瀏覽器控制檯,我沒有看到\自動背後每一個附加」 這是很好的和正常節點的行爲?這是我目前對使用某個NPM包時遇到的問題的懷疑,但我似乎無法強制節點不能逃脫單引號。

+0

我很確定它只是出現在'console.log'上,因爲它試圖將它表示爲一個有效的對象。 –

+0

沒有區別!您的瀏覽器會在向您顯示輸出前對輸出進行優化,請嘗試將其粘貼到Chrome控制檯中:'「\」「' – andlrc

回答

0

這只是console.log()從Chrome到node.js中它對代碼的執行沒有任何影響。

console.log()的node.js實現嘗試將'test顯示爲有效的Javascript字符串。由於默認情況下,它們是帶有單引號的字符串,如果它們是屬性值,則顯示該字符串的唯一方法是通過轉義嵌入的單引號。

這種差異不應該以任何方式影響您的運行代碼。底層Javascript屬性在兩種情況下都是相同的。這只是console.log()的實現差異,它不受任何開放標準的支配,因此每個實施者都會自行選擇如何顯示console.log()輸出。