如何捕获对象未定义属性的错误?

时间:2019-04-29 18:51:54

标签: javascript ejs

我有一个利用API的搜索方法,它返回匹配项列表以及诸如“ id”和“ title”之类的属性,但是只有其中一些具有标题。如果没有标题,则会出现undefined错误。

我已经尝试了很多if =未定义的变体,但是一切都返回此错误:

  

无法读取未定义的属性'title'

           <% if (results.length == 0){ %>
              <h1>No Matching Results</h1>
           <% } else if(typeof results[i].id !== "undefined"){ %>
              <a href="/second/<%= results[i].id %>">
                 <%= results[i].name %>
                 <% if(results[i].known_for[0].title) { %>
                    Known For: <%= results[i].known_for[0].title %>
                 <% } else { %>
                    Known For: Nothing
                 <% } %>
             </a>
            <% } %>

我只希望它提供标题(如果提供),然后提供else语句(如果没有提供)。

1 个答案:

答案 0 :(得分:0)

           <% if (results.length == 0){ %>
              <h1>No Matching Results</h1>
           <% } else if(typeof results[i].id !== "undefined"){ %>
              <a href="/second/<%= results[i].id %>">
                 <%= results[i].name %>
                 <% if(results[i].known_for[0].title !== undefined || results[i].known_for[0].title !== "undefined" || results[i].known_for[0].title !== null) { %>
                    Known For: <%= results[i].known_for[0].title %>
                 <% } else { %>
                    Known For: Nothing
                 <% } %>
             </a>
            <% } %>