--- title: 'TypeError: can''t access property "x" of "y"' slug: Web/JavaScript/Reference/Errors/Cant_access_property translation_of: Web/JavaScript/Reference/Errors/Cant_access_property ---
{{jsSidebar("Errors")}}

消息

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

错误类型

{{jsxref("TypeError")}}.

哪里出错了?

访问了 {{jsxref("undefined")}} 或{{jsxref("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已定义,可以进一步操作.
}

参考更多