Baseline Widely available
ÐведениеÐпеÑаÑÐ¾Ñ for ÑоздаÑÑ Ñикл, ÑоÑÑоÑÑий из ÑÑÐµÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑÑ Ð²ÑÑажений, заклÑÑеннÑÑ Ð² кÑÑглÑе Ñкобки и ÑазделеннÑÑ ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой, за коÑоÑÑми ÑледÑÐµÑ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ (ÑаÑÑо блок инÑÑÑÑкÑий), коÑоÑÐ°Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° вÑполнÑÑÑÑÑ Ð² Ñикле.
ÐнÑеÑакÑивнÑй пÑимеÑlet str = "";
for (let i = 0; i < 9; i++) {
str = str + i;
}
console.log(str);
// Expected output: "012345678"
СинÑакÑиÑ
for ([иниÑиализаÑиÑ]; [ÑÑловие]; [ÑиналÑное вÑÑажение])
[инÑÑÑÑкÑиÑ]
иниÑиализаÑиÑ
ÐеобÑзаÑелÑнÑй
var
или let
. ÐеÑеменнÑе, обÑÑвленнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ var
, не ÑвлÑÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑми Ð´Ð»Ñ Ñикла, Ñ.е. они наÑ
одÑÑÑÑ Ð² Ñой же облаÑÑи видимоÑÑи, ÑÑо и Ñикл for
. ÐеÑеменнÑе, обÑÑвленнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ let
, ÑвлÑÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑми Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑа и не доÑÑÑÐ¿Ð½Ñ Ð·Ð° пÑеделами Ñикла.РезÑлÑÑÐ°Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¾ÑбÑаÑÑваеÑÑÑ.
ÑÑловие
ÐеобÑзаÑелÑнÑй
for
.УÑловие не ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм. ÐÑли его неÑ, ÑÑловие вÑегда вÑегда оÑениваеÑÑÑ ÐºÐ°Ðº true
.
ÑиналÑное вÑÑажение
ÐеобÑзаÑелÑнÑй
инÑÑÑÑкÑиÑ
{ ... }
) Ð´Ð»Ñ Ð³ÑÑппиÑовки ÑÑиÑ
инÑÑÑÑкÑий. ЧÑÐ¾Ð±Ñ Ð½Ðµ вÑполнÑÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ инÑÑÑÑкÑии в Ñикле, иÑполÑзÑйÑе пÑÑÑÑÑ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ (;
).for
СледÑÑÑий Ñикл for
наÑинаеÑÑÑ Ð¾Ð±ÑÑвлением пеÑеменной i
и Ð·Ð°Ð´Ð°Ð½Ð¸Ñ ÐµÐ¹ знаÑÐµÐ½Ð¸Ñ 0
. ÐаÑем пÑовеÑÑеÑ, ÑÑо i
менÑÑе девÑÑи, вÑполнÑÐµÑ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ Ð²Ð½ÑÑÑи блока инÑÑÑÑкÑий и инкÑеменÑиÑÑÐµÑ (ÐнкÑеменÑ) i
на каждой иÑеÑаÑии.
for (let i = 0; i < 9; i++) {
console.log(i);
// еÑÑ ÐºÐ°ÐºÐ¸Ðµ-Ñо инÑÑÑÑкÑии
}
СинÑакÑÐ¸Ñ Ð±Ð»Ð¾ÐºÐ° иниÑиализаÑии
Рблоке иниÑиализаÑии возможно как обÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ
, Ñак и более ÑложнÑе вÑÑажениÑ. Ðднако вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ могÑÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ in
без Ñкобок, поÑÐ¾Ð¼Ñ ÑÑо ÑÑо конÑликÑÑÐµÑ Ñ Ñиклом for...in
.
for (let i = "start" in window ? window.start : 0; i < 9; i++) {
console.log(i);
}
// SyntaxError: 'for-in' loop variable declaration may not have an initializer.
// ÐÑе вÑÑажение иниÑиализаÑии пеÑеменной взÑÑо в Ñкобки
for (let i = ("start" in window ? window.start : 0); i < 9; i++) {
console.log(i);
}
// ÐÑÑажение `in` взÑÑо в Ñкобки
for (let i = ("start" in window) ? window.start : 0; i < 9; i++) {
console.log(i);
}
ÐеобÑзаÑелÑнÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² for
ÐÑе 3 вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² Ñикле for
не обÑзаÑелÑнÑ.
ÐапÑимеÑ, в блоке иниÑиализаÑии не ÑÑебÑеÑÑÑ Ð¾Ð¿ÑеделÑÑÑ Ð¿ÐµÑеменнÑе:
let i = 0;
for (; i < 9; i++) {
console.log(i);
// еÑÑ Ð²ÑÑажениÑ
}
Ðак и блок иниÑиализаÑии, блок ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð½Ðµ обÑзаÑелен. ÐÑли пÑопÑÑÑиÑе ÑÑо вÑÑажение, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑвеÑенÑ, ÑÑо пÑеÑвÑÑе Ñикл где-Ñо в Ñеле, а не ÑоздадиÑе беÑконеÑнÑй Ñикл.
for (let i = 0; ; i++) {
console.log(i);
if (i > 3) break;
// ÑÑÑ ÐºÐ°ÐºÐ¾Ð¹-Ñо код
}
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑопÑÑÑиÑÑ Ð²Ñе 3 блока. Снова ÑбедиÑеÑÑ, ÑÑо иÑполÑзÑеÑе break
, ÑÑоб законÑиÑÑ Ñикл, а Ñакже измениÑÑ ÑÑÑÑÑик, Ñак ÑÑо ÑÑловие Ð´Ð»Ñ break бÑло иÑÑинно в нÑжнÑй моменÑ.
let i = 0;
for (;;) {
if (i > 3) break;
console.log(i);
i++;
}
ÐÑполÑзование for
без блока инÑÑÑÑкÑий
СледÑÑÑий Ñикл for
вÑÑиÑлÑÐµÑ ÑмеÑение позиÑии Ñзла в ÑекÑии [ÑиналÑное вÑÑажение]
, и, ÑледоваÑелÑно, не ÑÑебÑÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½ÑÑÑÑкÑии или блока инÑÑÑÑкÑий
внÑÑÑи Ñикла, вмеÑÑо ÑÑого иÑполÑзÑеÑÑÑ ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой (пÑÑÑÐ°Ñ Ð¸Ð½ÑÑÑÑкÑиÑ).
function showOffsetPos(id) {
let left = 0,
top = 0;
for (
let itNode = document.getElementById(id); // иниÑиализаÑиÑ
itNode; // ÑÑловие
left += itNode.offsetLeft,
top += itNode.offsetTop,
itNode = itNode.offsetParent // ÑиналÑное вÑÑажение
); // ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой (пÑÑÑÐ°Ñ Ð¸Ð½ÑÑÑÑкÑиÑ)
console.log(
`СмеÑение позиÑии ÑлеменÑа "${id}":
Ñлева: ${left}px;
ÑвеÑÑ
Ñ: ${top}px;`,
);
}
showOffsetPos("content");
// ÐÑводиÑ:
// СмеÑение позиÑии ÑлеменÑа "content":
// Ñлева: 0px;
// ÑвеÑÑ
Ñ: 153px;"
ÐÑимеÑание: Ð ÑÑом ÑлÑÑае, когда Ð²Ñ Ð½Ðµ иÑполÑзÑеÑе ÑÑловие внÑÑÑи Ñикла, ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой ÑÑавиÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñикла.
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже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