我现在正在学习 javascript,发现这段代码有一些问题
var response = '{"status":{"message":{"-1":[111]}}}';
response = jQuery.parseJSON(response);
if ( typeof (response.status.warning[-1]) == "undefined" ) {
console.log(true);
};
为什么他会抛出错误,而不是仅仅忽略“console.log”部分?
最佳答案
您需要更具防御性地编写代码:
if (response && (!response.status || !response.status.warning || typeof (response.status.warning[-1]) == "undefined" ) {
应该检查 response.status
和 response.status.warning
是否存在。如果 response.status
甚至不存在,response.status.warning
将生成错误
关于JavaScript 未定义抛出 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15241913/