在If语句中的OR运算符

时间:2015-06-23 10:18:33

标签: javascript operators

我有两把钥匙namedescription。有些人有价值观,有些人没有价值观,有些则有undefined

我试图写一个catch-all if语句,但这似乎并没有起作用。

<% if (name && description || typeof name !== 'undefined' && typeof description !== 'undefined') { %>
  <h1><%= name %></h1>
  <h2><%= description %></h2>
<% } %>

如果定义了namedescription,则会进行渲染。如果没有,他们就不会渲染。如果他们设置为未定义,我会收到此错误:

Uncaught ReferenceError: name is not defined

知道我做错了吗?

感谢任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:0)

在尝试将其与typeof一起使用之前,需要将OR运算符(||)更改为AND运算符(&amp;&amp;)以检查名称和描述是否不等于null。

如果您不需要检查变量的类型,并且您只是检查是否定义了名称和描述。您可以将代码简化为:

<% if (name && description) { %>
  <h1><%= name %></h1>
  <h2><%= description %></h2>
<% } %>