2016-01-23 2 views
0

Я создаю простую переменную, как показано ниже, и хочу ее распечатать. Я составил команду print, но это, конечно, не работает. Есть ли эквивалент этого? Я хочу, чтобы отобразить выходной переменной на выходе, как это показывает, возвращаемые значения, когда я исполняю x.gatesAgeOnDate()В NodeJS REPL, как печатать до стандартного?

var billGatesBirthday = '10-28-1955'; 
    print billGatesBirthday; 

    exports.gatesAge = function() { 
     return (new Date() - new Date(billGatesBirthday))/1000/60/60/24/365.25 
    }; 

    exports.gatesAgeOnDate = function(dateOfInterest) { 
     console.log('dateOfInterest'); 
     return (new Date(dateOfInterest) - new Date(billGatesBirthday))/1000/60/60/24/365.25 
    }; 
+1

Просто console.log (billGatesBirthday)? – Evers

+0

protip: не работают в REPL, создайте файл типа 'myfile.js' и сообщите узлу о запуске с помощью'> node myfile'. Работа в REPL является одновременно неудобной (вы не можете отменить ошибки, только перезапишите их), а не как люди, которые используют Node, используют Node. –

ответ

1

Работает в REPL немного странно (большинство людей, и я бы порекомендовал вам сделать тоже, сделайте настоящие .js-файлы, а затем запустите их, используя вместо этого node realfile.js. «.js» даже необязательно), но: вы имеют три варианта.

Во-первых, универсальный способ сделать это в JavaScript - использовать console.log (и соответствующие утверждения). Это делает то, что он говорит на жестяне: он записывается на консоль.

Однако вы находитесь в REPL, что означает, что любые команды, которые вы оцениваете, также автоматически регистрируют возвращаемое значение. В то время как в реальных пробегов Node (из файла), вы можете рассчитывать только на console.log, в REPL вы можете просто ввести имя переменной и увидеть возвращаемое значение:

> var a = "cats": 
undefined 
> a 
'cats' 

Handy.

Наконец, вы находитесь в узле, поэтому у вас есть прямой доступ к стандартным выводам через process.stdout.write, так что вы можете писать на него. Там нет абсолютно никаких причин, чтобы сделать это, но вы можете:

> var a = "lol"; 
undefined 
> process.stdout.write(a); 
loltrue 

«что это не просто», нет, это не так, как уже упоминалось выше, это вещь, которую вы сделали плюс возвращаемое значение. console.log достаточно любезен, чтобы автоматически вставлять новую строку для вас, process.stdout, очевидно, нет. Таким образом, мы видим, что напечатано значение a, нет новой строки, а затем возвращаемое значение попытки записи потока, которое равно true, потому что ничего не случилось. Не используйте для этого process.stdout.

0
console.log(billGatesBirthday); 

Всегда используйте console.log() для печати что-нибудь с помощью JavaScript.

+0

Не, если вы используете Node REPL. Вы также можете воспользоваться тем фактом, что REPL всегда регистрирует возврат на консоль. –

+0

REPL logs undefined при объявлении переменных, а не действительном значении. –

+0

Да, очевидно. Журналы REPL возвращаются, поэтому вы просто вводите имя переменной и нажимаете enter. Это возвращает, что весьма неудивительно, содержание переменной. –

Смежные вопросы