为什么第一个 console.log 没有打印?

Why is the first console.log not printing?

编辑:抱歉。 !== 是一个错字。直到发布后我才明白。请原谅我浪费了你的时间。

我是 Javascript 的新手。

我创建了这个函数(使用 winston):

    function setlogger (log_level = "warn", logfile, screendump, format) { // defaults
    console.log("Format came into logger as: ", String(format), ". Converting..."); //777
    if ( typeof format == 'undefined') { 
        format = format.combine(
                     format.colorize(),
                     format.timestamp(),
                     format.align(),
                     format.printf(formatParams)
                    );
        console.log("Format is now:(1) ", String(format), ". "); //777
    }
    console.log("Format is now: (2)", String(format), ". "); //777

当我调用它时,(2) console.log() 出现了,但 (1) 没有出现。

Format came into logger as:  undefined . Converting...
Format is now: (2) undefined . 

这是为什么?

编辑:UPS 没关系。找到了

如果这个 : Format came into logger as: undefined . Converting... 被记录然后这个 if ( typeof format !== 'undefined') 检查将不会通过,你在那个块中的日志调用将永远不会记录任何东西。

你的错误在你试图在这里实现的那种事情上更合乎逻辑,所以如果你更好地描述你的意图,我们可能会更有帮助

第一个 console.log 没有显示,因为您作为 format 参数传递的值未定义,所以它没有传递需要它的 if 语句 不是未定义。