为什么数组中的假值和空字符串在Mustache中呈现为[Object object]?

时间:2013-05-30 06:46:04

标签: mustache

我无法在jsfiddle.net中从github加载mustache.js,所以我下载了文件并尝试在本地机器上运行:

var output = Mustache.render(

    "{{#arr}} {{.}} \n{{/arr}}", 

    {
        arr : [1, 3.12, NaN, Infinity, -Infinity, 0, -0, null, "", " ", "0", 
               true, false, undefined, "hee"]
    }

);

console.log(output);

令我惊讶的是,即使是official docs says the {{.}} is for string,虚假值也会呈现为[object Object]。数字1和3.12实际上很好。请注意,它们是数字的原始类型,而不是字符串。 console.log显示:

 1 
 3.12 
 [object Object] 
 Infinity 
 -Infinity 
 [object Object] 
 [object Object] 
 [object Object] 
 [object Object] 

 0 
 true 
 [object Object] 
 [object Object] 
 hee 

我想知道为什么包含有效字符串""的虚假值显示为[object Object]

如果我将其设为arr : ["ha", "hee", "", "wah"],那么所有字符串都会很好,但第3个字符串也会显示为[object Object]

如果它适用于"ha",为什么它不适用于""?如果它适用于3.12,为什么它不适用于0?如果它能够适用于所有原始值,那么它是否有意义?

(我还尝试使用Handlebars,所有值都显示出来,nullundefinedfalse除外

0 个答案:

没有答案