TypeError: can't access property "x" of "y"

消息

TypeError: Unable to get property {x} of undefined or null reference (Edge)
TypeError: can't access property {x} of {y} (Firefox)
TypeError: {y} is undefined, can't access property {x} of it (Firefox)
TypeError: {y} is null, can't access property {x} of it (Firefox)

Examples:
TypeError: x is undefined, can't access property "prop" of it
TypeError: x is null, can't access property "prop" of it
TypeError: can't access property "prop" of undefined
TypeError: can't access property "prop" of null

错误类型

TypeError.

哪里出错了?

访问了 null 值的属性.

例子

无效情形

// 对于undefined 以及 null 值, substring 方法无法正常工作
var foo = undefined;
foo.substring(1); // TypeError: x is undefined, can't access property "substring" of it

var foo = null;
foo.substring(1); // TypeError: x is null, can't access property "substring" of it

解决问题

为了解决undefined 或 null 值的空指针问题,你可以使用 typeof 操作符, 比如.

if (typeof foo !== 'undefined') {
  // 现在已经确认foo已定义,可以进一步操作.
}

参考更多