Baseline Widely available
Ðлок инÑÑÑÑкÑий (или ÑÐ»Ð¾Ð¶Ð½Ð°Ñ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ Ð² дÑÑгиÑ
ÑзÑкаÑ
) иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð³ÑÑппиÑовки нÑÐ»Ñ Ð¸Ð»Ð¸ более инÑÑÑÑкÑий. Ðлок оÑделÑеÑÑÑ Ð¿Ð°Ñой ÑигÑÑнÑÑ
Ñкобок и Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð¿ÑионалÑно бÑÑÑ Ð¿Ð¾Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½
:
[имÑ:] { инÑÑÑÑкÑиÑ_1; инÑÑÑÑкÑиÑ_2; ... инÑÑÑÑкÑиÑ_n; }
инÑÑÑÑкÑиÑ_1
, инÑÑÑÑкÑиÑ_2
, инÑÑÑÑкÑиÑ_n
ÐнÑÑÑÑкÑии, ÑгÑÑппиÑованнÑе внÑÑÑи блока инÑÑÑÑкÑий.
ÐеобÑзаÑелÑное имÑ
Ð´Ð»Ñ Ð²Ð¸Ð·ÑалÑной иденÑиÑикаÑии или иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ðº ÑоÑки вÑÑ
ода Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑа break
.
ÐÑа инÑÑÑÑкÑÐ¸Ñ ÑиÑоко иÑполÑзÑеÑÑÑ Ñ Ð¾Ð¿ÐµÑаÑоÑами ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñоком (н., if...else
, for
, while
). ÐапÑимеÑ:
ÐбÑаÑиÑе внимание, ÑÑо блок инÑÑÑÑкÑий не заканÑиваеÑÑÑ ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой.
Ðлок инÑÑÑÑкÑий ÑаÑÑо назÑваеÑÑÑ Ñложной (ÑоÑÑавной) инÑÑÑÑкÑией в дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ . Ðн позволÑÐµÑ Ð²Ð°Ð¼ иÑполÑзоваÑÑ Ð½ÐµÑколÑко опеÑаÑоÑов Ñам, где JavaScript Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ опеÑаÑоÑ. ÐомеÑение инÑÑÑÑкÑий в блок - ÑÑо ÑаÑпÑоÑÑÑанÑÐ½Ð½Ð°Ñ Ð¿ÑакÑика в JavaScript. ÐÑоÑивоположное поведение - иÑполÑзование пÑÑÑого опеÑаÑоÑа Ñам, где Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ Ð´ÐµÐ¹ÑÑвий не нÑжно, а опеÑаÑÐ¾Ñ ÑÑебÑеÑÑÑ.
ÐÑавила облаÑÑи видимоÑÑи блока С иÑполÑзованиемvar
ÐеÑеменнÑе, обÑÑвленнÑе ÑеÑез var
, не имеÑÑ Ð±Ð»Ð¾Ñной облаÑÑи видимоÑÑи. ÐеÑеменнÑе, введÑннÑе внÑÑÑи блока, имеÑÑ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи ÑодеÑжаÑÑÑ Ð¸Ñ
ÑÑнкÑÐ¸Ñ Ð¸Ð»Ð¸ ÑкÑипÑ, и поÑледÑÑÐ²Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи в ниÑ
знаÑÐµÐ½Ð¸Ñ ÑаÑпÑоÑÑÑанÑÑÑÑÑ Ð·Ð° гÑаниÑÑ, ÑобÑÑвенно, блока, в коÑоÑом они обÑÑвленÑ. ÐÑÑгими Ñловами, блок инÑÑÑÑкÑий не Ð²Ð²Ð¾Ð´Ð¸Ñ Ð½Ð¾Ð²ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи. ХоÑÑ "оÑделÑно ÑÑоÑÑие" блоки не ÑвлÑÑÑÑÑ Ð½Ð°ÑÑÑением ÑинÑакÑиÑа, не ÑÑÐ¾Ð¸Ñ Ð¸ÑполÑзоваÑÑ Ð¾ÑделÑно ÑÑоÑÑие блоки в JavaScript, поÑÐ¾Ð¼Ñ ÑÑо они не делаÑÑ Ñо, Ñего Ð²Ñ Ð¾Ñ Ð½Ð¸Ñ
ожидаеÑе, еÑли Ð²Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÑе, ÑÑо они бÑдÑÑ ÑÐµÐ±Ñ Ð²ÐµÑÑи аналогиÑно блокам в C или Java. ÐапÑимеÑ:
var x = 1;
{
var x = 2;
}
console.log(x); // вÑÐ²Ð¾Ð´Ð¸Ñ 2
ТÑÑ Ð²ÑводиÑÑÑ 2, поÑÐ¾Ð¼Ñ ÑÑо опеÑаÑÐ¾Ñ var x
внÑÑÑи блока - в Ñой же облаÑÑи видимоÑÑи, ÑÑо и опеÑаÑÐ¾Ñ var x
пеÑед блоком. Ð C или Java подобнÑй код вÑвел Ð±Ñ 1.
let
и const
ÐаобоÑоÑ, иденÑиÑикаÑоÑÑ, обÑÑвленнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ let
и const
имеÑÑ Ð±Ð»Ð¾ÑнÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи:
let x = 1;
{
let x = 2;
}
console.log(x); // вÑÐ²Ð¾Ð´Ð¸Ñ 1
x = 2
огÑаниÑено Ñамками облаÑÑи видимоÑÑи блока, в коÑоÑом оно бÑло опÑеделено.
То же Ñамое и Ð´Ð»Ñ const
:
const c = 1;
{
const c = 2;
}
console.log(c); // вÑÐ²Ð¾Ð´Ð¸Ñ 1 и не вÑбÑаÑÑÐ²Ð°ÐµÑ SyntaxError...
ÐбÑаÑиÑе внимание, ÑÑо обÑÑÐ²Ð»ÐµÐ½Ð½Ð°Ñ Ð²Ð½ÑÑÑи блока const c = 2
не ÐºÐ¸Ð´Ð°ÐµÑ SyntaxError: Identifier 'c' has already been declared
(иденÑиÑикаÑÐ¾Ñ 'c' Ñже бÑл обÑÑвлен
) поÑÐ¾Ð¼Ñ ÑÑо она Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð±ÑÑвлена ÐµÐ´Ð¸Ð½Ð¾Ð¶Ð´Ñ Ð²Ð½ÑÑÑи блока.
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