2012-08-27 15 views
5

क्रोम में, निम्नconsole.log (true, ' t') सही क्यों प्रिंट करता है "t"?

console.log(true, '\t'); 

true " " 

क्यों कर रहे हैं प्रिंट होगा वहाँ के आसपास फांसी के मूल्य?

(ध्यान दें कि console.log(true + '', '\t') केवल true प्रिंट होगा एक ही रास्ता है कि console.log('a', '\t'); केवल a प्रिंट होगा में,।)

+0

व्हाइटस्पेस दिखाने के लिए। – asawyer

+0

100% निश्चित नहीं है, लेकिन मेरा अनुमान है क्योंकि \ t एक स्ट्रिंग अभिव्यक्ति है जो एक टैब का प्रतिनिधित्व करती है, क्रोम दिखाता है ताकि आप अंतर कर सकें कि यह वास्तव में काम कर रहा है। –

+0

@asawyer: 'console.log ('a', '\ t') 'के लिए नहीं होता है! – Randomblue

उत्तर

11

मूल रूप से वहाँ console.log करने के लिए दो भार के हैं:

console.log(formatString, args) और console.log(arg1, arg2, ...)

अधिक विशेष रूप से, प्रति the source code, यदि पहला पैरामीटर एक स्ट्रिंग है तो यह अन्य पैरामीटर के लिए प्रारूप स्ट्रिंग के रूप में व्यवहार करता है। अन्यथा, प्रत्येक पैरामीटर सीधे आउटपुट है।

इस प्रकार console.log(true + '', '\t') आउटपुट 'सही' क्योंकि पहले पैरामीटर एक स्ट्रिंग है और वहाँ \t के लिए कोई प्लेसहोल्डर है, और console.log(true, '\t') इच्छा उत्पादन दोनों मापदंडों क्योंकि true एक स्ट्रिंग नहीं है।

+0

बहुत अच्छा जवाब। कोड को इंगित करने के लिए धन्यवाद। – Randomblue

+0

मृत लिंक ...... – Rohit

2

मैं इसे

console.log(true, '\t'); 
true " " 

के साथ चारों ओर खेलने का फैसला किया और उसके बाद मैं विपरीत

console.log(false, '\t'); 
false " " 

सुनिश्चित नहीं की कोशिश की क्यों, लेकिन झूठी वापस केवल एक ही स्थान मिल जाता है, जबकि सच वापस दो o_O देता है .. । इसके अलावा, अगर \t शुरुआत में है वहाँ कोई समस्या नहीं है

console.log('\t', true); 
    true 

यह भी मीटर नहीं है इसके बाद क्या होता है लेकिन ऐसा लगता है कि पहला पैरामीटर यदि सामान्य रूप से एक बुलियन है, तो उद्धरण के बाद सभी बच निकले टैब को प्रभावित करेगा।

console.log(false, '\t', '\t'); 
false " " " " 

तो यह निश्चित रूप से अगर आप इसे तार के साथ प्रयास करें, यह पूरी तरह से सामान्य रूप से व्यवहार करती है क्योंकि पहली परमाटर एक बूलियन जा रहा है के साथ कुछ नहीं है। मुझे लगता है कि यह Google क्रोम के साथ एक quirky बात है? मुझे वास्तव में इसे देखने के लिए स्रोत कोड ढूंढना होगा।

+0

1 बनाम 2 रिक्त स्थान समस्या संभवतः इसलिए है क्योंकि यह एक टैब है और शेष टैब कॉलम भरने के लिए विस्तारित है। – apsillers

संबंधित मुद्दे