Как указано в документации console.log
в Node.js, функция принимает аргументы в printf-like way:
Первый аргумент является строкой, которая содержит ноль или более заполнителей.
Каждый замещающий объект заменяется преобразованным значением из соответствующего аргумента. Поддержанными заполнителями являются:
% s - String.
% d - Число (целое число и поплавок).
% j - JSON. Заменяется строкой «[Циркуляр]», если аргумент содержит круглые ссылки.
%% - знак одного процента ('%'). Это не требует аргумента.
Если у заполнителя нет соответствующего аргумента, заменитель не заменяется.
Таким образом, любое вхождение %%
в строке печатается с console.log
в Node.js (не браузер) будут заменены единым %
. Любые %s
, %d
или %j
будут заменены строкой, номером или строкой JSON, соответственно. Вот некоторые примеры:
console.log("This is a string: %s", "Hello, World!");
//= This is a string: Hello, World!
console.log("This is a number: %d", 3.14);
//= This is a number: 3.14
console.log("This is a JSON string: %j", { value: true });
//= This is a JSON string: {"value":true}
console.log("This is a single percentage sign: %%");
//= This is a single percentage sign: %
console.log("If we use %%s and %%d here we get '%s' and '%d'.", "a string", 100);
//= If we use %s and %d here we get 'a string' and '100'.
Вызывающие console.log
в браузере, однако, будет просто напечатать обычную строку ни с одной из вышеуказанных замен.
Я не могу воспроизвести это, я запустил точный код, который вы отправили, и получил последний результат. – Frxstrem
Я запустил его с node.js v0.10.36 – tgoneil
Интересно. Я просто побежал с JSBin и получил последний результат. – tgoneil