我无法让mustache.js从jsfiddle.net中的github加载,所以我下载了文件并在本地机器上尝试:
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);
令我惊讶的是,虚假值呈现为[object Object]
,即使官方文档说{{.}}
是 forstring
。数字 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"]
,那么所有字符串都很好,但第三个字符串也输出为[object Object]
.
如果它适用于"ha"
,为什么它不适用""
?如果它适用于3.12
,为什么它不适用0
?如果它适用于所有原始值,也许它是有意义的?
(我也再次尝试使用 Handlebars,所有值都显示了,除了null
、undefined
和false
)