gpt4 book ai didi

mustache - Mustache 和 Handlebars 中的真假是什么?

转载 作者:行者123 更新时间:2023-12-04 11:53:04 33 4
gpt4 key购买 nike

在 JavaScript 中:

falsy: false, null, undefined, 0, -0, NaN, ""
truthy: everything else, including [] and {} (empty array and empty object)

但是在 Handlebars 中,对于 {{#if foo}} 来说似乎是(来自 Handlebars's docs ) :
falsy: false, undefined, null, "", []
truthy: everything else, including 0, -0, {}
undefinedNaN不能作为 JSON 文件中的值列出,所以我不能使用 Java Mustache 渲染器测试它,但是,如果我根本不定义属性,那么它可能只是 undefined它被认为是假的。

以上为 {{#if foo}} ,让事情变得更复杂,只是 {{#foo}} 怎么样?在 Handlebars 和 mustache ?真假规则与 {{#if foo}}完全一样吗? ?如果可能,请提供指向文档的指示以支持您的声明。希望在 PHP 或 Java 或其他语言中实现 Mustache 或 Handlebars 遵循完全相同的规则。

我还发现对于 Mustache ,好像 {{#foo}}称为段,其规则为:
falsy: whatever falsy in JavaScript, plus []
truthy: everything else

但似乎 can.js 的 Mustache/Handlebars 实现处理了 0为假。 (参见 http://jsfiddle.net/kAt7E/45/http://jsfiddle.net/kAt7E/46/http://jsfiddle.net/kAt7E/47/http://jsfiddle.net/kAt7E/48/)。所以有这么多不同的规则有点令人不安。

最佳答案

Per the Mustache spec ,真实性取决于宿主语言。已有multiple attemptsstandardize这是跨语言的,但共识是宿主语言拥有最终决定权。

意思是,在 JavaScript 中,任何 !!val === true是真实的,任何地方!!val === false是假的。如果同一宿主语言中的不同 Mustache 实现不一致地应用此规范,则这是实现中的错误。

关于mustache - Mustache 和 Handlebars 中的真假是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444525/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com