JavaScript 未定义抛出 TypeError

标签 javascript undefined

我现在正在学习 javascript,发现这段代码有一些问题

var response = '{"status":{"message":{"-1":[111]}}}';
response = jQuery.parseJSON(response);
if ( typeof (response.status.warning[-1]) == "undefined" ) {
    console.log(true);
};

为什么他会抛出错误,而不是仅仅忽略“console.log”部分?

dafuq is this javascript

最佳答案

您需要更具防御性地编写代码:

if (response && (!response.status || !response.status.warning || typeof (response.status.warning[-1]) == "undefined" ) {

应该检查 response.statusresponse.status.warning 是否存在。如果 response.status 甚至不存在,response.status.warning 将生成错误

关于JavaScript 未定义抛出 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15241913/

相关文章:

Javascript - 动态嵌套横向

javascript - 当在我的 html 脚本标记上使用 async ='true' 来加载 socket.io.js 时,它会导致 io 对象出现未定义的错误,有什么建议吗?

javascript - Array[element+1] 返回未定义?

javascript - 用Java语言捕获未捕获的Typerrors

javascript - 在 JavaScript 中将对象的未定义键设置为未定义

javascript - 使用 Javascript 生成的 HTML 表在我的主 div 中产生未定义

javascript - 如何检测浏览器对 "picture"元素的支持

javascript - 如何在给定时间后重新加载网页的一部分?

javascript - 如何从模板添加 SVG g 元素?

javascript - 在 requestAnimationFrame 上添加缓动