If语句中的OR运算符

OR Operator in an If Statement

本文关键字:OR 运算符 语句 If      更新时间:2023-09-26

我有两个键,namedescription。有些有值,有些没有值,有些是undefined

我正试图写一个包罗万象的语句,但这似乎不起作用。

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

如果定义了namedescription,则它们将进行渲染。否则,它们不会渲染。然而,如果它们被设置为未定义,我会得到以下错误:

Uncaught ReferenceError: name is not defined

知道我做错了什么吗?

感谢您的帮助。提前感谢!

您需要将OR运算符(||)更改为AND运算符(&&),以检查名称和描述是否等于null,然后再尝试将它们与typeof一起使用。

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

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