Javascript: %s или %d представляет строку?
может кто-нибудь объяснить, что здесь происходит? Я вижу %d
и %s
но я не вижу этих объявленных или написанных где-либо еще в коде. Что, черт возьми, это значит/ делать в javascript? Я предполагаю, что это своего рода шаблон строки, который я никогда раньше не видел?
passport.deserializeUser(
(id, done) => {
debug('will deserialize user.id=%d', id)
User.findById(id)
.then(user => {
debug('deserialize did ok user.id=%d', user.id)
done(null, user)
})
.catch(err => {
debug('deserialize did fail err=%s', err)
done(err)
})
}
)
4 ответов
то, что вы видите, - это шаблоны подстановки строк, встроенные в консоль.log() или Console.отлаживать.)(
шаблон идет так, как я представил ниже:
%s для строкового значения
%d или %i для целого значения
%f для числа с плавающей точкой
%o для гиперссылка на объект
таким образом, по существу вы заменяете значения значениями, поставляемыми следующим образом:
var name = 'Chris';
console.log('Hi, my name is %s.', name);
//Output: Hi, my name is Chris.
console.debug('Hi, my name is %s.', name);
//Output: Hi, my name is Chris.
console.log()
и console.debug()
используйте форматирование в стиле printf. Ниже приведены официально поддерживаемые форматтеры:
форматирования представление:
-
%O
Pretty-печать объекта на нескольких строках. -
%o
Pretty-печать объекта все на одной строке. -
%s
строку. -
%d
Number (как целое число, так и float). -
%j
в формате JSON. Заменяется строкой ' [Circular]', если аргумент содержит циклические ссылки. -
%%
один знак процента ('%'). Это не требует аргумента.
результаты записываются в консоль отладки. просто откройте командную строку или терминал и запустите его, используя следующее:
node debug [script.js | -e "script" | <host>:<port>] command
Это, вероятно, что-то конкретное debug (), так как в Javascript нет встроенного форматирования строк (не без библиотеки).
однако %d заменяется целым числом, а %s - строкой. Пример:
debug("I'm %s and I'm %d years old", "John", 10)
должен напечатать: Я Джон, и мне 10 лет.
вот библиотека, которую вы можете использовать, если вам интересно:http://www.diveintojavascript.com/projects/javascript-sprintf
спецификаторы % выходного формата %d %S и т. д. поступают из ANSI C таким образом, он входит в узел через библиотеку-в этом случае util.формат https://nodejs.org/api/util.html#util_util_format_format_args