有人可以解释一下这里发生了什么吗?我懂了%d
and %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)
})
}
)
您所看到的是内置的字符串替换模式console.log()
or console.debug()
.
该模式如下所示:
%s
对于一个字符串
%d
or %i
对于号码
%f
对于浮点数
%o
对于一个对象
%j
对于 JSON
因此,本质上您是用提供的值替换说明符,如下所示:
var name = 'Chris';
console.log('Hi, my name is %s.', name);
// Hi, my name is Chris.
console.debug('Hi, my name is %s.', name);
// Hi, my name is Chris.
Docs:
- Chrome 文档 https://developers.google.com/web/tools/chrome-devtools/console/console-write#string_substitution_and_formatting
- 火狐文档 https://developer.mozilla.org/en-US/docs/Web/API/Console#Using_string_substitutions
- IE 文档 https://learn.microsoft.com/en-gb/visualstudio/debugger/javascript-console-commands?view=vs-2019#ConsoleLog
- Node.js 文档 https://nodejs.org/api/util.html#util_util_format_format_args
- 规范文档 https://console.spec.whatwg.org/#formatter
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)