TypeError: недопÑÑÑимое назнаÑение const "x" (Firefox) TypeError: пÑиÑвоение пеÑеменной конÑÑанÑÑ. (Chrome) TypeError: пÑиÑвоение const (Edge) TypeError: повÑоÑное обÑÑвление const 'x' (IE)Тип оÑибки ЧÑо поÑло не Ñак?
ÐонÑÑанÑа-ÑÑо знаÑение, коÑоÑое не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ пÑогÑаммой в обÑÑном иÑполнении. Ðн не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñн пÑÑÑм повÑоÑного назнаÑÐµÐ½Ð¸Ñ Ð¸ не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно обÑÑвлен. Ð JavaScript, конÑÑанÑÑ Ð¾Ð±ÑÑвлÑÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ»ÑÑевого Ñлова const.
ÐÑимеÑÑ ÐедопÑÑÑимое повÑоÑное обÑÑвлениеAssigning a value to the same constant name in the same block-scope will throw.
const COLUMNS = 80;
// ...
COLUMNS = 120; // TypeError: invalid assignment to const `COLUMNS'
РеÑение пÑоблемÑ
ÐÑÑÑ Ð½ÐµÑколÑко ваÑианÑов, ÑÑÐ¾Ð±Ñ Ð¸ÑпÑавиÑÑ ÑÑÑ Ð¾ÑибкÑ. ÐÑовеÑÑÑе, ÑÑо должно бÑло бÑÑÑ Ð´Ð¾ÑÑигнÑÑо Ñ ÑаÑÑмаÑÑиваемой конÑÑанÑой.
ÐеÑеназовиÑеÐÑли Ð²Ñ Ñ Ð¾Ñели обÑÑвиÑÑ Ð´ÑÑгÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, вÑбеÑиÑе дÑÑгое Ð¸Ð¼Ñ Ð¸ пеÑеименоваÑÑ. ÐÑо Ð¸Ð¼Ñ ÐºÐ¾Ð½ÑÑанÑÑ Ñже иÑполÑзÑеÑÑÑ Ð² ÑÑой облаÑÑи.
const COLUMNS = 80;
const WIDE_COLUMNS = 120;
const
, let
или var
?
Ðе иÑполÑзÑйÑе const, еÑли Ð²Ñ Ð½Ðµ Ñ Ð¾Ñели обÑÑвлÑÑÑ ÐºÐ¾Ð½ÑÑанÑÑ. Ðозможно, Ð²Ñ Ñ Ð¾Ñели обÑÑвиÑÑ Ð¿ÐµÑеменнÑÑ Ð² облаÑÑи блока Ñ let или глобалÑнÑÑ Ð¿ÐµÑеменнÑÑ Ñ var.
let columns = 80;
// ...
let columns = 120;
ÐбзоÑ
ÐÑовеÑиÑÑ, еÑли Ð²Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑеÑÑ Ð² пÑавилÑной облаÑÑи. Ðолжна ли ÑÑа конÑÑанÑа поÑвиÑÑÑÑ Ð² ÑÑой облаÑÑи или она должна бÑла поÑвиÑÑÑÑ Ð² ÑÑнкÑии, напÑимеÑ?
const COLUMNS = 80;
function setupBigScreenEnvironment() {
const COLUMNS = 120;
}
const
и неизменноÑÑÑ
ÐбÑÑвление const ÑоздаÑÑ ÑÑÑÐ»ÐºÑ ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð½Ð° знаÑение. ÐÑо не ознаÑаеÑ, ÑÑо знаÑение, коÑоÑое он ÑодеÑжиÑ, ÑвлÑеÑÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½ÑемÑм, пÑоÑÑо иденÑиÑикаÑÐ¾Ñ Ð¿ÐµÑеменной не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑеназнаÑен. ÐапÑимеÑ, еÑли ÑодеÑжимое ÑвлÑеÑÑÑ Ð¾Ð±ÑекÑом, ÑÑо ознаÑаеÑ, ÑÑо Ñам обÑÐµÐºÑ Ð²Ñе еÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñн. ÐÑо ознаÑаеÑ, ÑÑо нелÑÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð·Ð½Ð°Ñение, Ñ ÑанÑÑееÑÑ Ð² пеÑеменной:
const obj = { foo: "bar" };
obj = { foo: "baz" }; // TypeError: invalid assignment to const `obj'
Ðо можно измениÑÑ ÑвойÑÑва в пеÑеменной:
obj.foo = "baz";
obj; // Object { foo: "baz" }
СмоÑÑиÑе Ñакже
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