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

nop*_*ole 6 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);
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是[object Object],尽管官方文档说明了这{{.}}一点string,但虚假的价值观也是如此.数字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 
Run Code Online (Sandbox Code Playgroud)

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

如果我做到了arr : ["ha", "hee", "", "wah"],那么所有琴弦都会很好,但是第3个也出来了[object Object].

如果它适用"ha",为什么它不起作用""?如果它适用3.12,为什么它不起作用0?也许它是有意义的,如果它是为所有原始价值工作?

(我也尝试再次使用把手,并且所有值出现了,除了null,undefinedfalse)