Baseline Widely available
СводкаÐнаÑение глобалÑного ÑвойÑÑва undefined
пÑедÑÑавлÑÐµÑ Ð·Ð½Ð°Ñение undefined
. ÐÑо одно из пÑимиÑивнÑÑ
знаÑений JavaScript.
function test(t) {
if (t === undefined) {
return "Undefined value!";
}
return t;
}
let x;
console.log(test(x));
// Expected output: "Undefined value!"
СинÑакÑÐ¸Ñ ÐпиÑание
undefined
ÑвлÑеÑÑÑ ÑвойÑÑвом глобалÑного обÑекÑа, Ñо еÑÑÑ, ÑÑо пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð² глобалÑной облаÑÑи видимоÑÑи. ÐаÑалÑнÑм знаÑением undefined
ÑвлÑеÑÑÑ Ð¿ÑимиÑивное знаÑение undefined
.
Ð ÑовÑеменнÑÑ
бÑаÑзеÑаÑ
(JavaScript 1.8.5 / Firefox 4+), undefined
ÑвлÑеÑÑÑ Ð½ÐµÐ½Ð°ÑÑÑаиваемÑм и незапиÑÑваемÑм ÑвойÑÑвом, в ÑооÑвеÑÑÑвии Ñо ÑпеÑиÑикаÑией ECMAScript 5. Ðаже когда ÑÑо не Ñак, избегайÑе его пеÑеопÑеделениÑ.
ÐеÑеменнаÑ, не имеÑÑÐ°Ñ Ð¿ÑиÑвоенного знаÑениÑ, Ð¾Ð±Ð»Ð°Ð´Ð°ÐµÑ Ñипом undefined
. Также undefined
возвÑаÑаÑÑ Ð¼ÐµÑод или инÑÑÑÑкÑиÑ, еÑли пеÑеменнаÑ, ÑÑаÑÑвÑÑÑÐ°Ñ Ð² вÑÑиÑлениÑÑ
, не Ð¸Ð¼ÐµÐµÑ Ð¿ÑиÑвоенного знаÑениÑ. ФÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ undefined
, еÑли она не возвÑаÑÐ°ÐµÑ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо знаÑениÑ.
ÐоÑколÑÐºÑ undefined
не ÑвлÑеÑÑÑ Ð·Ð°ÑезеÑвиÑованнÑм Ñловом, он Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² каÑеÑÑве иденÑиÑикаÑоÑа (имени пеÑеменной) в лÑбой облаÑÑи видимоÑÑи, за иÑклÑÑением глобалÑной.
// пеÑаÑÐ°ÐµÑ 'foo string'
(function () {
var undefined = "foo";
console.log(undefined, typeof undefined);
})();
// пеÑаÑÐ°ÐµÑ 'foo string'
(function (undefined) {
console.log(undefined, typeof undefined);
})("foo");
ÐÑимеÑÑ ÐÑимеÑ: ÑÑÑогое ÑÑавнение и undefined
ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ undefined
и опеÑаÑоÑÑ ÑÑÑогого ÑавенÑÑва или неÑавенÑÑва Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñого, Ð¸Ð¼ÐµÐµÑ Ð»Ð¸ пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð·Ð½Ð°Ñение. Ð ÑледÑÑÑем коде пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ x
не опÑеделена и инÑÑÑÑкÑÐ¸Ñ if
вÑÑиÑлÑеÑÑÑ Ð² true
.
var x;
if (x === undefined) {
// ÑÑи инÑÑÑÑкÑии бÑдÑÑ Ð²ÑполненÑ
} else {
// ÑÑи инÑÑÑÑкÑии не бÑдÑÑ Ð²ÑполненÑ
}
ÐÑимеÑание: ÐдеÑÑ Ð¸ÑполÑзÑеÑÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ ÑÑÑогого ÑавенÑÑва (иденÑиÑноÑÑи) вмеÑÑо пÑоÑÑого опеÑаÑоÑа ÑавенÑÑва, поÑколÑÐºÑ x == undefined
Ñакже пÑовеÑÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ x
ÑавнÑм null
, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº опеÑаÑÐ¾Ñ Ð¸Ð´ÐµÐ½ÑиÑноÑÑи ÑÑого не делаеÑ. null
не ÑквиваленÑен undefined
. ÐÐ»Ñ Ð±Ð¾Ð»ÐµÐµ подÑобной инÑоÑмаÑии ÑмоÑÑиÑе опеÑаÑоÑÑ ÑÑавнениÑ.
typeof
и undefined
РкаÑеÑÑве алÑÑеÑнаÑÐ¸Ð²Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ typeof
:
var x;
if (typeof x === "undefined") {
// ÑÑи инÑÑÑÑкÑии бÑдÑÑ Ð²ÑполненÑ
}
Ðдной из пÑиÑин иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð¿ÐµÑаÑоÑа typeof
Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñа, ÑÑо он не вÑбÑаÑÑÐ²Ð°ÐµÑ Ð¾ÑибкÑ, еÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ бÑла опÑеделена.
// пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ x не бÑла опÑеделена Ñанее
if (typeof x === "undefined") {
// вÑÑиÑлиÑÑÑ Ð² true без оÑибок
// ÑÑи инÑÑÑÑкÑии бÑдÑÑ Ð²ÑполненÑ
}
if (x === undefined) {
// вÑÐºÐ¸Ð½ÐµÑ ReferenceError
}
Ðднако, Ñловки Ñакого Ñода Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð·Ð±ÐµÐ³Ð°ÑÑÑÑ. JavaScript ÑвлÑеÑÑÑ ÑзÑком Ñо ÑÑаÑиÑеÑкой облаÑÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи, Ñак ÑÑо ÑзнаÑÑ, бÑла ли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾Ð¿Ñеделена, можно пÑÑÑм пÑоÑмоÑÑа, бÑла ли она опÑеделена в оÑ
ваÑÑваÑÑем конÑекÑÑе. ÐдинÑÑвеннÑм иÑклÑÑением ÑвлÑÐµÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑÐ½Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи, но глобалÑÐ½Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи пÑивÑзана к глобалÑÐ½Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ, Ñак ÑÑо пÑовеÑка ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑеменной в глобалÑном конÑекÑÑе Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾ÑÑÑеÑÑвлена пÑÑÑм пÑовеÑки ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвойÑÑва глобалÑного обÑекÑа (напÑимеÑ, иÑполÑзÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ in
).
void
и undefined
ТÑеÑÑей алÑÑеÑнаÑивой ÑвлÑеÑÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ void
.
var x;
if (x === void 0) {
// ÑÑи инÑÑÑÑкÑии бÑдÑÑ Ð²ÑполненÑ
}
// пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ y не бÑла опÑеделена Ñанее
if (y === void 0) {
// вÑÐºÐ¸Ð½ÐµÑ ReferenceError (в оÑлиÑие Ð¾Ñ Ð¾Ð¿ÐµÑаÑоÑа `typeof`)
}
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4