เบญเบธเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เป€เบฎเบฑเบ”เบกเบฑเบ™เบญเบตเบเบ„เบฑเป‰เบ‡: เบเบฒเบ™เปเบเป‰เบšเบฑเบ™เบซเบฒเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เปƒเบ™ JavaScript

เบญเบธเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เป€เบฎเบฑเบ”เบกเบฑเบ™เบญเบตเบเบ„เบฑเป‰เบ‡: เบเบฒเบ™เปเบเป‰เบšเบฑเบ™เบซเบฒเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เปƒเบ™ JavaScript

เบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ” JavaScript เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเปเบฅเบฐเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเปเปˆเบ‚เบปเปˆเบกเบ‚เบนเปˆเบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™, เบเป‰เบญเบ™เบงเปˆเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบฒเบเบ„เบปเบ™เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบš. เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบตเบเบฅเปˆเบฝเบ‡, เปเบฅเบฐเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบŠเป‰เปเบฒเป€เบฅเบทเป‰เบญเบเป†. เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เปเบ™เปƒเบชเปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเบปเบง, เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบžเบงเบเบกเบฑเบ™. เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™, เบŠเบทเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเบงเบฑเบ”เบ–เบธเปเบกเปˆเบ™เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบ เป€เบžเบ‡เบเบญเบ”เบ™เบดเบเบปเบก. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบˆเบทเปˆเบˆเปเบฒเป„เบ”เป‰เป„เบงเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›.

เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™: เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบญเปˆเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ "Habr" - เบชเปˆเบงเบ™เบซเบผเบธเบ” 10 rubles เป€เบกเบทเปˆเบญเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบซเบผเบฑเบเบชเบนเบ” Skillbox เป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบชเบปเปˆเบ‡เป€เบชเบตเบก "Habr".

Skillbox เปเบ™เบฐเบ™เปเบฒ: เบซเบผเบฑเบเบชเบนเบ”เบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ” "เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบทเบ–เบท PRO".

TypeError: เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”

let girl = {
    name: "Lucky",
    location: "Hollywood",
    profession: "star",
    thingsMissingInHerLife: true,
    lovely: true,
    cry: function() {
        return "cry, cry, cries in her lonely heart"
    }
}
console.log(girl.named.lucky)

เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบ–เบดเป‰เบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” Uncaught TypeError: เบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” 'เป‚เบŠเบเบ”เบต' เบ‚เบญเบ‡ undefined. เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เป€เบ”เบฑเบเบเบดเบ‡เบšเปเปˆเบกเบตเบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบกเบตเบŠเบฑเบšเบชเบดเบ™เบŠเบทเปˆ. เปเบฅเบฐเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบŠเบฑเบšเบชเบดเบ™ girl.named เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบกเบฑเบ™เบšเปเปˆเบกเบต. เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™ girl.named.lucky เบเบฑเบš girl.name, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™เบˆเบฐเบเบฑเบšเบ„เบทเบ™เบกเบฒ Lucky.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” เบญเปˆเบฒเบ™เบ—เบตเปˆเบ™เบตเป‰.

เบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚ TypeErrors

TypeErrors เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบเบปเบ‡เบเบฑเบšเบ›เบฐเป€เบžเบ”เบชเบฐเป€เบžเบฒเบฐ. เบ•เบปเบงเบขเปˆเบฒเบ‡เบฅเบงเบกเบกเบตเบเบฒเบ™เปƒเบŠเป‰ .bold(), เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”, เบซเบผเบทเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบˆเบดเบ‡เปเบฅเป‰เบงเบšเปเปˆเปเบกเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเป‚เบ—เบซเบฒ girl(), เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” Uncaught TypeError: yourVariable.bold เบšเปเปˆเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเป€เบ”เบฑเบเบเบดเบ‡เบšเปเปˆเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ–เบทเบเป€เบญเบตเป‰เบ™, เบšเปเปˆเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ.

เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบถเบเบชเบฒเบ•เบปเบงเปเบ›. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบ”เบฑเบเบเบดเบ‡เปเบกเปˆเบ™เบซเบเบฑเบ‡? เบชเบฒเบง.เบŠเบทเปˆเบซเบเบฑเบ‡? เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹, เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบ•เบปเบงโ€‹เปเบ›โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ console.logโ€‹, เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡ debuggerโ€‹, เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เป€เบญเบตเป‰เบ™โ€‹เบŠเบทเปˆโ€‹เบ•เบปเบงโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปƒเบ™ console เป„เบ”เป‰โ€‹. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ›. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเป€เบซเบกเบฒเบฐ, เบ›เปˆเบฝเบ™เปเบ›เบ‡เบกเบฑเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบตเปˆเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบซเบผเบทเบžเบฐเบเบฒเบเบฒเบก..catch block - เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™.

เบฅเบปเป‰เบ™เบเบญเบ‡

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบŠเบทเปˆเบญเบงเปˆเบฒเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเป€เบžเบ‡เบ‚เบญเบ‡เป€เบžเบ‡ Baby One More Time (เบ™เบตเป‰เปเบกเปˆเบ™ Britney Spears, เปเบกเปˆเบ™เปเบฅเป‰เบง), เบ„เปเบฒเบงเปˆเบฒเบ•เบตเปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบ›เบฒเบ–เบฐเบซเบ™เบฒเบ‚เบญเบ‡เบ™เบฑเบเบฎเป‰เบญเบ‡เบ—เบตเปˆเบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡ (เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡. เป€เบžเบ‡ - เบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบœเบนเป‰เปเบ›). เบกเบฑเบ™เบ”เบตเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบ›เบฒเบ–เบฐเบซเบ™เบฒเบ™เบตเป‰เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบทเป‰เบ™เบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป‚เบ—เปƒเบ™เบŠเบตเบงเบดเบ”เบˆเบดเบ‡. เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก, เบ™เบตเป‰เปเบกเปˆเบ™ recursion เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ stack เบเบฒเบ™เป‚เบ— overflows.

เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบ„เบทโ€‹เบ™เบตเป‰โ€‹:

เบœเบดเบ”เบžเบฒเบ”: เบžเบทเป‰เบ™เบ—เบตเปˆเบงเบฒเบ‡เบŠเป‰เบญเบ™เบเบฑเบ™เปเบปเบ” (เบ‚เบญเบš)
เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบžเบฒเบเปƒเบ™: เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบŠเป‰เบณเป€เบเบตเบ™เป„เบ› (Firefox)
RangeError: เป€เบเบตเบ™เบ‚เบฐเปœเบฒเบ” stack call เบชเบนเบ‡เบชเบธเบ” (Chrome)

stack overflow เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบšเปเปˆเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเปเบฅเบฐเบ™เบตเบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบเบฒเบ™ recursion, เบซเบผเบทเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบšเปเปˆเป„เบ”เป‰เปเบเป‰เป„เบ‚เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ•เบฑเป‰เบ‡เป„เบงเป‰.

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness++
    return oneMoreTime(stillBelieve, loneliness)
}

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, StillBelieve เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบœเบดเบ”เป„เบ”เป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ oneMoreTime เบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡, เปเบ•เปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”.

เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเป€เบฅเบตเปˆเบกเป€เบžเบดเปˆเบ‡เบžเบฒเปเบนเปˆเบชเบญเบ‡เบ„เบปเบ™, เบ™เบตเป‰เบˆเบฐเบซเบผเบธเบ”เบ„เบงเบฒเบกเป‚เบ”เบ”เบ”เปˆเบฝเบง, เปเบฅเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบˆเบณเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบชเบฒเบ.

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness--
    stillBelieve = false
    return oneMoreTime(stillBelieve, loneliness)
}

เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบต loops เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”, เป€เบกเบทเปˆเบญเบฅเบฐเบšเบปเบšเบšเปเปˆเบชเป‰เบฒเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เปเบ•เปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบฐเบซเบฑเบ” JavaScript เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆ freezes. เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ loop เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒ.

let worldEnded = false
 
while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
}

เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

let worldEnded = false
 
while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
  worldEnded = true
}

เบเบฒเบ™เบ”เบตเบšเบฑเปŠเบ loops infinite เปเบฅเบฐ recursions

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบดเบ”เปเบ–เบšเปƒเบ™ Chrome เบซเบผเบท Edge, เปเบฅเบฐเบ›เบดเบ”เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเปƒเบ™ Firefox. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบšเบฑเบ™เบซเบฒเป„เบ”เป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡ debugger เบเบฑเบš loop เบซเบผเบทเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ›. เบ–เป‰เบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเปเปˆเบเบปเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เบฒเบ”เบซเบงเบฑเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบ—เบปเบ”เปเบ—เบ™เบกเบฑเบ™, เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบ‡เปˆเบฒเบ.

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, debugger เบ„เบงเบ™เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ›เบฑเบ™เปเบ–เบงเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบท loop. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เป€เบ›เบตเบ”เปเบ–เบš debug เปƒเบ™ Chrome, เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ•เบปเบงเปเบ›เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบธเปˆเบกเบ•เปเปˆเป„เบ›เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™เปเบ•เปˆเบฅเบฐ iteration. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”, เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบ—เบตเปˆเบ™เบตเป‰ (เบชเปเบฒเบฅเบฑเบš Chrome) เปเบฅเบฐโ€‹เบ™เบตเป‰ (เบชเปเบฒเบฅเบฑเบš Firefox).

syntax เบœเบดเบ”เบžเบฒเบ”

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เปƒเบ™ JavaScript เปเบกเปˆเบ™ SyntaxError. เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบžเบงเบเบกเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, Bracket Pair Colorizer เบเปเบฒเบ™เบปเบ”เบงเบปเบ‡เป€เบฅเบฑเบšเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบชเบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบฅเบฐ Prettier เบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰เป„เบง. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡ SyntaxError เปเบกเปˆเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบฑเบ‡เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”.

เปเบšเปˆเบ‡เบ›เบฑเบ™เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™: เป€เบˆเบปเป‰เบฒเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบทเป„เบงเบเบงเบ”เบžเบปเบšเปเบฅเบฐเบฅเบปเบšเบฅเป‰เบฒเบ‡เบžเบงเบเบกเบฑเบ™?

Skillbox เปเบ™เบฐเบ™เปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™