Baseline Widely available
ÐнаÑение конÑÑÐ°Ð½Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ новÑм пÑиÑваиванием, а Ñакже не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑеопÑеделено. ÐонÑÑанÑÑ (const
) подÑинÑÑÑÑÑ Ð¾Ð±Ð»Ð°ÑÑи видимоÑÑи ÑÑÐ¾Ð²Ð½Ñ Ð±Ð»Ð¾ÐºÐ° Ñак же, как пеÑеменнÑе, обÑÑвленнÑе Ñ Ð¸ÑполÑзованием клÑÑевого Ñлова let
.
const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];
nameN
ÐÐ¼Ñ ÐºÐ¾Ð½ÑÑанÑÑ. ÐодÑинÑеÑÑÑ Ñем же пÑавилам, ÑÑо и иденÑиÑикаÑоÑÑ Ð¾Ð±ÑÑнÑÑ Ð¿ÐµÑеменнÑÑ .
valueN
ÐнаÑение конÑÑанÑÑ. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑбÑм из ÑÐµÑ Ñипов, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð´Ð»Ñ Ð¿ÐµÑеменнÑÑ , вклÑÑÐ°Ñ ÑÑнкÑиÑ.
ÐÑо обÑÑвление ÑоздаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, ÑÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÐºÐ°Ðº глобалÑной, Ñак и локалÑной внÑÑÑи блока, в коÑоÑом она обÑÑвлена. ÐлобалÑнÑе конÑÑанÑÑ Ð½Ðµ ÑÑановÑÑÑÑ ÑвойÑÑвами обÑекÑа window, в оÑлиÑие Ð¾Ñ var
-пеÑеменнÑÑ
. ÐниÑиализаÑÐ¸Ñ ÐºÐ¾Ð½ÑÑанÑÑ Ð¾Ð±ÑзаÑелÑна; необÑ
одимо ÑказаÑÑ Ð·Ð½Ð°Ñение одновÑеменно Ñ Ð¾Ð±ÑÑвлением (ÑмÑÑл в Ñом, ÑÑо поÑом ÑÑо знаÑение измениÑÑ Ñже нелÑзÑ).
const
ÑоздаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ (новÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½ÑÑ ÑÑÑÐ»ÐºÑ Ð½Ð° облаÑÑÑ Ð¿Ð°Ð¼ÑÑи), доÑÑÑпнÑÑ ÑолÑко Ð´Ð»Ñ ÑÑениÑ. ÐÑо не ознаÑаеÑ, ÑÑо ÑказÑваемое знаÑение неизменно, но ÑÑо ознаÑаеÑ, ÑÑо иденÑиÑикаÑÐ¾Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑеназнаÑен. ÐапÑимеÑ, еÑли конÑÑанÑа ÑказÑÐ²Ð°ÐµÑ Ð½Ð° обÑекÑ, Ñо Ñам обÑÐµÐºÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñн.
ÐÑе ÑообÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ Ð¿Ð¾Ð²Ð¾Ð´Ñ Ð²ÑеменнÑÑ
мÑÑÑвÑÑ
зон, пÑÐ¸Ð¼ÐµÐ½Ð¸Ð¼Ñ Ð¸ к let
и к const
.
Ðмена конÑÑÐ°Ð½Ñ Ð½Ðµ могÑÑ ÑовпадаÑÑ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ ÑÑнкÑий или пеÑеменнÑÑ Ñой же облаÑÑи видимоÑÑи.
ÐÑимеÑÑÐиже опиÑÐ°Ð½Ñ Ð¿ÑимеÑÑ, демонÑÑÑиÑÑÑÑие поведение const
. ÐопÑобÑйÑе иÑ
вÑполниÑÑ Ð² пÑоÑÑом JavaScript-ÑедакÑоÑе или в конÑоли бÑаÑзеÑа.
// ÐÑимеÑание: ÐденÑиÑикаÑоÑÑ ÐºÐ¾Ð½ÑÑÐ°Ð½Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¾Ð±ÑÑÐ²Ð»ÐµÐ½Ñ ÐºÐ°Ðº в веÑÑ
нем,
// Ñак и в нижнем ÑегиÑÑÑе. Ðо пÑавилом Ñ
оÑоÑего Ñона ÑвлÑеÑÑÑ Ð¸ÑполÑзование
// веÑÑ
него ÑегиÑÑÑа.
// опÑеделим MY_FAV как конÑÑанÑÑ Ð¸ пÑиÑвоим ей знаÑение 7
const MY_FAV = 7;
// данное пÑиÑваивание вÑдаÑÑ Ð¾ÑÐ¸Ð±ÐºÑ - Uncaught TypeError: Assignment to constant variable.
MY_FAV = 20;
// напеÑаÑÐ°ÐµÑ 7
console.log("my favorite number is: " + MY_FAV);
// попÑобÑем пеÑеопÑеделиÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, бÑÐ´ÐµÑ Ð±ÑоÑено иÑклÑÑение - Uncaught SyntaxError: Identifier 'MY_FAV' has already been declared
const MY_FAV = 20;
// Ð¸Ð¼Ñ MY_FAV заÑезеÑвиÑовано конÑÑанÑой вÑÑе, Ð´Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿ÐµÑаÑиÑ
// вÑÐºÐ¸Ð½ÐµÑ Ð¸ÑклÑÑение
var MY_FAV = 20;
// здеÑÑ Ñакже бÑÐ´ÐµÑ Ð¾Ñибка
let MY_FAV = 20;
// Ðажно оÑмеÑиÑÑ ÑвойÑÑва облаÑÑи видимоÑÑи ÑÑÐ¾Ð²Ð½Ñ Ð±Ð»Ð¾ÐºÐ°
if (MY_FAV === 7) {
// ÐÑÑ Ð½Ð¾ÑмалÑно. СоздаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ Ð¸Ð»Ð¸ пеÑеменнÑÑ MY_FAV можно.
// (ÑабоÑÐ°ÐµÑ Ñак же как и let пÑи обÑÑвлении в блоке пеÑеменнÑÑ
, коÑоÑÑе не const)
const MY_FAV = 20;
// MY_FAV ÑепеÑÑ 20
console.log("my favorite number is " + MY_FAV);
// ÑÑо попадÑÑ Ð² глобалÑнÑй конÑекÑÑ Ð¸ вÑдаÑÑ Ð¾ÑибкÑ
var MY_FAV = 20;
}
// MY_FAV вÑе еÑÑ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение 7
console.log("my favorite number is " + MY_FAV);
// ÐÑдаÑÑ Ð¾ÑибкÑ, поÑÐ¾Ð¼Ñ ÑÑо конÑÑанÑа не иниÑиализиÑована - Uncaught SyntaxError: Missing initializer in const declaration
const FOO;
// const Ñакже ÑабоÑÐ°ÐµÑ Ñ Ð¾Ð±ÑекÑами
const MY_OBJECT = { key: "value" };
// ÐопÑÑка пеÑеопÑеделиÑÑ ÑÑÑÐ»ÐºÑ Ð½Ð° обÑÐµÐºÑ Ð²ÑÐ·Ð¾Ð²ÐµÑ Ð¸ÑклÑÑение - Uncaught TypeError: Assignment to constant variable.
MY_OBJECT = { OTHER_KEY: "value" };
// но, ÑвойÑÑва обÑекÑа (клÑÑи) можно изменÑÑÑ
MY_OBJECT.key = "otherValue"; // ÐÑполÑзÑйÑе Object.freeze() Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑделаÑÑ Ð¾Ð±ÑÐµÐºÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½ÑемÑм
// То же Ñамое пÑименимо к маÑÑивам
const MY_ARRAY = [];
// ÐапÑимеÑ, можно добавлÑÑÑ ÑлеменÑÑ Ð² маÑÑив
MY_ARRAY.push("A"); // ["A"]
// Ðо менÑÑÑ ÑÑÑÐ»ÐºÑ Ð½Ð° обÑÐµÐºÑ Ð¼Ð°ÑÑива нелÑзÑ. ÐÑо вÑÐ·Ð¾Ð²ÐµÑ Ð¸ÑклÑÑение - Uncaught TypeError: Assignment to constant variable
MY_ARRAY = ["B"];
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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