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

JavaScript の例外 "can't access property" は、 undefined または null の値に対してプロパティのアクセスが行われた場合に発生します。

エラーメッセージ

js
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)

:
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

エラーの種類

エラーの原因

undefinednull に対してプロパティアクセスを行いました。

無効な場合

js
// undefined and null cases on which the substring method won't work
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

問題の修正

undefinednull のヌルポインターアクセスを修正するには、たとえば typeof 演算子を使用することができます。

js
if (typeof foo !== 'undefined') {
  // Now we know that foo is defined, we are good to go.
}

関連情報