Почему console.log ведет себя так?

В интерпретаторе node.js: -

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 Заранее благодарю за ваш ответ.

Ответ 1

Когда регистрирует строку, она полностью анализируется, и каждый символ получает escape-код, и это нормально, это ожидаемое поведение.

Nonlessless, , отображающий строку (не регистрируясь), интерпретатор пытается показать ее в простейшей возможной форме. Это также позволит избежать недоразумений для пользователя, который смотрит на него. Итак, в основном:

  • Отображение "\"hi\"" покажет '"hi"', потому что вы можете записать двойную кавычку внутри строки с разделителем без кавычек, не избегая ее, и ее намного легче читать.

  • Отображение '\'hi\'' покажет "'hi'" по той же причине.

  • Отображение "\"hi\", 'hey'" с одиночными и двойными кавычками будет заставить интерпретатор показать вам исходную строку (в той же форме, которую вы создали), потому что никоим образом не показывать его, избегая одиночной или двойной кавычек, поэтому ее можно отобразить только как "\"hi\", 'hey'".

Попробуйте сами:

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

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

console.log(a + ", " + b);
> "hi", 'hey', "hi"