![](/img/trans.png)
[英]How to print the object like string in console.log in Javascript?
[英]Javascript console.log(object) vs. concatenating string
我在 node.js 中運行它:
> x = { 'foo' : 'bar' }
{ foo: 'bar' }
> console.log(x)
{ foo: 'bar' }
undefined
> console.log("hmm: " + x)
hmm: [object Object]
undefined
我不明白的是為什么console.log(x)
“漂亮地打印”了對象,而字符串連接“丑陋地打印”了它。 更重要的是,讓它打印hmm: { foo: 'bar' }
的最佳方法是什么?
的+ x
脅迫的對象x
為一個字符串,這僅僅是[object Object]
:
漂亮的打印是一個非常好的並且可能非常復雜的底層代碼,有人將其作為console
對象和log
方法的一部分實現。
嘗試這個:
console.log("hmm: ", x);
'console.log' 是一個重載函數,它接受通過復制(字符串|數字|布爾值)或通過引用(其他所有方式)傳遞的參數列表。
在通過復制傳遞值的情況下,該值通過將其轉換為字符串來打印。
在通過引用傳遞值的情況下,該值會按照瀏覽器認為合適的方式打印出來。
加號運算符 (+) 已重載。 當運算符兩邊都是數字時,返回兩個運算符之和。
如果運算符的任一側是字符串,則兩側都將轉換為字符串,並返回這兩個字符串的連接。
console.log("hmm: " + x);
和寫作一樣
console.log(String("hmm: ") + String(x));
通過用逗號 (,) 交換加號 (+) 來防止隱式字符串轉換
console.log("hmm: ", x);
有關“console.log”功能的更深入描述,請參閱:
https://developer.mozilla.org/en-US/docs/DOM/console.log
有關加號運算符 (+) 的更深入描述,請參閱:
http://www.w3schools.com/js/js_operators.asp
打印附加字符串的對象時使用JSON.stringify
console.log("Haa"+JSON.stringify(x))
你可以使用console.log(JSON.stringify(yourObject));
打印您的對象。 這行得通!
您有多種選擇:
process.stdout.write('hmm: ')
console.dir(x)
其他...
var util = require('util')
process.stdout.write('hmm: ')
console.log(util.inspect(x, true, 10, true))
有關更多信息,請參閱util.inspect文檔。
編輯:抱歉,我以為我讀了 Node.js。 這僅對 Node.js 有效。 所以,我會把它留給任何谷歌員工。
Edit2:我沒瘋,我只是需要睡覺。 你確實寫了 Node.js。 我要把它作為標簽添加。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.