如果是ejs中的条件,最好的做法

时间:2017-07-20 08:21:18

标签: html ejs

我的json文件中有一个变量enabled:"false",我在ejs文件中读取内容变量中的数据。

但是当我检查条件时:

<% if(content.enabled) { %>
    <h1>foo</h1>
<% } %>

条件同时适用于"true""false",这可能不是正确的检查方法。

包括if在内的==条件的正确方法是什么。

最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

我建议您不要将boolean值用作string。例如,当您使用"false"而不是false时。 JS认为它是一个真正的价值。在JS中,除了false0""nullundefinedNaN之外,所有值都是真实的。所以,当你说enabled:"false"时,实际上确实如此。

有关truthy值的详细信息,请检查this

对于你的问题;在JSON中将变量设置为;

{ "enabled" : false }

您的代码将有效。

为了进行比较,我建议严格相等===,因为它也在比较值类型。例如;

0 == false //returns true
0 === false //returns false

您可以找到详细信息here

答案 1 :(得分:0)

您的方法只有正确,您也可以添加其他条件,例如

<% if (content.enabled=="true" || content.enabled==true) { %>
   <h1>foo</h1>
<% } else { %>
  <h1>false content</h1>
<% } %>