2015-03-22 7 views
11

Node.js दुभाषिया पर: -console.log इस तरह व्यवहार क्यों करता है?

console.log("A newline character is written like \"\\ n \"."); 
//output is:- 
// A newline character is written like "\ n ". 

लेकिन जब आप बस Node.js दुभाषिया में इसे दर्ज करें: -

"A newline character is written like \"\\ n \"." 
// it prints out:- 
//'A newline character is written like "\\ n ".' 

अब किसी को भी यह क्यों हुआ है? node.js के बारे में और जानने के लिए बस उत्सुक है आपके उत्तर के लिए अग्रिम धन्यवाद।

+0

हो सकता है क्योंकि जब एक स्ट्रिंग संकलक द्वारा पार्स किया गया है। यह दोनों मामलों में अलग-अलग व्यवहार करता है। @ azero0। लेकिन यह शुद्ध-जावास्क्रिप्ट में एक ही आउटपुट देता है। अच्छी जांच, संकलक हो सकता है स्ट्रिंग डेटाैटिप्स को कंसोल.लॉग() की स्ट्रिंग की तुलना में समान नहीं करता है। अच्छा प्रश्न –

उत्तर

6

प्रवेश एक स्ट्रिंग, यह पूरी तरह से पार्स जब हो जाता है और हर चरित्र बच गए हो जाता है, और कहा कि ठीक है, यह अपेक्षित व्यवहार है।

Nonethless, एक स्ट्रिंग (नहीं प्रवेश) प्रदर्शित करने, दुभाषिया सरल संभव के रूप में यह दिखाने की कोशिश करता है। यह उस उपयोगकर्ता के लिए किसी भी गलतफहमी से बच जाएगा जो इसे देख रहा है। तो, मूल रूप से:

  • "\"hi\"" प्रदर्शित, '"hi"' दिखाने क्योंकि आप इसे से बचने के बिना एक भी बोली सीमांकित स्ट्रिंग के अंदर एक दोहरे उद्धरण लिख सकते हैं, और यह बहुत आसान को पढ़ने के लिए है जाएगा।

  • '\'hi\'' प्रदर्शित करना इसी कारण से "'hi'" दिखाएगा।

  • प्रदर्शित "\"hi\", 'hey'", दोनों सिंगल और डबल उद्धरण के साथ, होगा आप मूल स्ट्रिंग (उसी रूप में उसकी निर्माण में) दिखाने के लिए दुभाषिया के लिए मजबूर है, वहाँ प्रदर्शित करने के लिए यह एक भागने wothout या तो कोई रास्ता नहीं है क्योंकि या डबल कोट्स, इसलिए इसे केवल "\"hi\", 'hey'" के रूप में दिखाया जा सकता है।

खुद के द्वारा यह प्रयास करें:

var a = "\"hi\", 'hey'"; 
> "\"hi\", 'hey'" 

var b = "\"hi\""; 
> '"hi"' 

console.log(a + ", " + b); 
> "hi", 'hey', "hi" 
संबंधित मुद्दे