Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
TypeError: "x" is (not) "y" ΠΡΠΈΠΌΠ΅ΡΠΈ: TypeError: "x" is undefined TypeError: "x" is null TypeError: "undefined" is not an object TypeError: "x" is not an object or null TypeError: "x" is not a symbol
ΠΠΈΠ΄ Π½Π° Π³ΡΠ΅ΡΠΊΠ°ΡΠ°
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠΊΠ°?
ΠΡΡΠ½Π°ΡΠΈΡΡ ΡΠΈΠΏ Π½Π΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΡΠ°. Π’ΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ΅ΡΡΠΎ ΠΏΡΠΈ Π²ΡΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ undefined
ΠΈΠ»ΠΈ null
.
ΠΡΠΊΠΎΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΊΠ°ΡΠΎ Object.create()
ΠΈΠ»ΠΈ Symbol.keyFor()
ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄Π° ΠΈΠΌ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ.
ΠΡΠΈΠΌΠ΅ΡΠΈ
Π‘Π»ΡΡΠ°ΠΈ, ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠΈ Π³ΡΠ΅ΡΠΊΠ°ΡΠ°
// Π‘Π»ΡΡΠ°ΠΈ, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ΡΡ substring Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ.
// Π’Π°ΠΊΠΈΠ²Π° ΡΠ° undefined ΠΈ null.
var foo = undefined;
foo.substring(1); // TypeError: foo is undefined
var foo = null;
foo.substring(1); // TypeError: foo is null
// ΠΠ΅ΡΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ°ΠΊΠ²Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ
// Π²ΡΡΡ
Ρ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ.
var foo = {}
Symbol.keyFor(foo); // TypeError: foo is not a symbol
var foo = 'bar'
Object.create(foo); // TypeError: "foo" is not an object or null
ΠΠΎΠΏΡΠ°Π²ΡΠ½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠ°ΡΠ°
ΠΠ° Π΄Π° ΠΎΠΏΡΠ°Π²ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠ°ΡΠ° Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π», ΡΠΎΡΠ΅Ρ ΠΊΡΠΌ ΡΡΠΎΠΉΠ½ΠΎΡΡ undefined
ΠΈΠ»ΠΈ null
, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° typeof.
if (typeof foo !== 'undefined') {
// Π‘Π΅Π³Π° Π·Π½Π°Π΅ΠΌ, ΡΠ΅ foo ΠΈΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ
// ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΠΌ.
}