仅在属性存在时测试它?

时间:2016-05-31 10:33:36

标签: javascript

如果响应没有msgs[0]属性,则以下测试会生成错误。

if response.msgs[0] === "published" { ... }

错误是:

Uncaught TypeError: Cannot read property '0' of undefined

如何重写测试以生成错误?如果没有msgs[0]属性,我希望测试评估为false

2 个答案:

答案 0 :(得分:7)

  

响应没有msgs [0]属性

这是不正确的。它会抛出一个错误,因为它没有msgs属性,而不是因为它没有0属性。

在测试msgs之前,您需要测试0是否存在。

if (response.msgs && response.msgs[0] === "published") { ... }

答案 1 :(得分:3)

测试首先定义response.msgs

if response.msgs && response.msgs[0] === "published" { ... }