有人可以解释一下这里发生了什么吗?我看到%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)
      })
  }
)

最佳答案

您会看到console.log()console.debug()内置了字符串替换模式。

模式如下所示:

字符串的%s
号码的%d%i
浮点数的%f
对象的%o
JSON的%j
因此,基本上,您是用提供的值替换说明符,如下所示:

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.

文件:
  • Chrome:https://developers.google.com/web/tools/chrome-devtools/console/console-write#string_substitution_and_formatting
  • Firefox:https://developer.mozilla.org/en-US/docs/Web/API/Console#Using_string_substitutions
  • IE:https://docs.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
  • 关于javascript - Javascript:%s或%d代表字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42406146/

    10-16 20:52