ืื•ืคืก, ืขืฉื™ืชื™ ืืช ื–ื” ืฉื•ื‘: ืื™ืชื•ืจ ืฉื’ื™ืื•ืช ื ืคื•ืฆื•ืช ื‘-JavaScript

ืื•ืคืก, ืขืฉื™ืชื™ ืืช ื–ื” ืฉื•ื‘: ืื™ืชื•ืจ ืฉื’ื™ืื•ืช ื ืคื•ืฆื•ืช ื‘-JavaScript

ื›ืชื™ื‘ืช ืงื•ื“ JavaScript ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžืืชื’ืจืช ื•ืœืขื™ืชื™ื ืžืžืฉ ืžืื™ื™ืžืช, ื›ืคื™ ืฉืžืคืชื—ื™ื ืจื‘ื™ื ืžื›ื™ืจื™ื. ื‘ืชื”ืœื™ืš ื”ืขื‘ื•ื“ื” ืžืชืขื•ืจืจื•ืช ื‘ื”ื›ืจื— ืฉื’ื™ืื•ืช, ื•ื—ืœืงืŸ ื—ื•ื–ืจื•ืช ืขืœ ืขืฆืžืŸ ืœืขืชื™ื ืงืจื•ื‘ื•ืช. ืžืืžืจ ื–ื”, ื”ืžื™ื•ืขื“ ืœืžืคืชื—ื™ื ืžืชื—ื™ืœื™ื, ืžื“ื‘ืจ ืขืœ ื”ืฉื’ื™ืื•ืช ื”ืœืœื• ื•ื›ื™ืฆื“ ืœืคืชื•ืจ ืื•ืชืŸ. ืœืฉื ื”ื‘ื”ื™ืจื•ืช, ื”ืฉืžื•ืช ืฉืœ ื”ืคื•ื ืงืฆื™ื•ืช, ื”ืžืืคื™ื™ื ื™ื ื•ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืœืงื•ื—ื™ื ืฉื™ืจ ืคื•ืคื•ืœืืจื™. ื›ืœ ื–ื” ืขื•ื–ืจ ืœืš ืœื–ื›ื•ืจ ื‘ืžื”ื™ืจื•ืช ื›ื™ืฆื“ ืœืชืงืŸ ื˜ืขื•ื™ื•ืช ื ืคื•ืฆื•ืช.

ืื ื• ืžื–ื›ื™ืจื™ื: ืœื›ืœ ืงื•ืจืื™ Habr - ื”ื ื—ื” ืฉืœ 10 ืจื•ื‘ืœ ื‘ืขืช ื”ืจืฉืžื” ืœื›ืœ ืงื•ืจืก Skillbox ื‘ืืžืฆืขื•ืช ืงื•ื“ ื”ื”ื˜ื‘ื” ืฉืœ Habr.

Skillbox ืžืžืœื™ืฆื”: ืงื•ืจืก ืžืขืฉื™ "Mobile Developer 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: ืœื ื ื™ืชืŸ ืœืงืจื•ื ืืช ื”ืžืืคื™ื™ืŸ 'lucky' ืฉืœ undefined. ื”ื‘ืขื™ื” ื”ื™ื ืฉืœืื•ื‘ื™ื™ืงื˜ ื”ื™ืœื“ื” ืื™ืŸ ืžืืคื™ื™ืŸ ื‘ืขืœ ืฉื, ืœืžืจื•ืช ืฉื™ืฉ ืœื• ืžืืคื™ื™ืŸ ืฉื. ื•ืžื›ื™ื•ื•ืŸ ืฉื”ื ื›ืก girl.named ืื™ื ื• ืžื•ื’ื“ืจ, ืื™ื ืš ื™ื›ื•ืœ ืœื’ืฉืช ืืœื™ื•, ื›ื™ ืจืฉืžื™ืช ื”ื•ื ืœื ืงื™ื™ื. ืื‘ืœ ืื ืชื—ืœื™ืฃ ืืช girl.named.lucky ื‘-girl.name, ืื– ื”ื›ืœ ื™ืขื‘ื•ื“ ื•ื”ืชื•ื›ื ื™ืช ืชื—ื–ื™ืจ ืืช Lucky.

ืืชื” ื™ื›ื•ืœ ืœืœืžื•ื“ ืขื•ื“ ืขืœ ื”ื ื›ืกื™ื ืงืจื ื›ืืŸ.

ื›ื™ืฆื“ ืœืคืชื•ืจ TypeErrors

ืฉื’ื™ืื•ืช Type ืžืชืจื—ืฉื•ืช ื›ืืฉืจ ืžืชื›ื ืช ืžื ืกื” ืœื‘ืฆืข ืคืขื•ืœื•ืช ืขืœ ื ืชื•ื ื™ื ืฉืื™ื ื ืชื•ืืžื™ื ืœืกื•ื’ ืžืกื•ื™ื. ื“ื•ื’ืžืื•ืช ื›ื•ืœืœื•ืช ืฉื™ืžื•ืฉ ื‘-.bold(), ื‘ืงืฉื” ืœืžืืคื™ื™ืŸ ืœื ืžื•ื’ื“ืจ ืื• ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื” ืฉืื™ื ื” ืœืžืขืฉื” ืคื•ื ืงืฆื™ื”.

ืื–, ืื ืชื ืกื” ืœืงืจื•ื ืœ-girl(), ืชืงื‘ืœ ืืช ื”ืฉื’ื™ืื” Uncaught TypeError: yourVariable.bold ื”ื™ื ืœื ืคื•ื ืงืฆื™ื” ื•-girl ื”ื™ื ืœื ืคื•ื ืงืฆื™ื”, ื›ื™ ื–ื” ื‘ืขืฆื ืื•ื‘ื™ื™ืงื˜ ืฉื ืงืจื, ืœื ืคื•ื ืงืฆื™ื”.

ื›ื“ื™ ืœื‘ื˜ืœ ืฉื’ื™ืื•ืช, ืืชื” ืฆืจื™ืš ืœืœืžื•ื“ ืืช ื”ืžืฉืชื ื™ื. ืื– ืžื” ื–ื” ื‘ืช? ืžื” ื–ื” girl.named? ืืชื” ื™ื›ื•ืœ ืœื‘ืจืจ ื–ืืช ืขืœ ื™ื“ื™ ื ื™ืชื•ื— ื”ืงื•ื“, ื”ืฆื’ืช ืžืฉืชื ื™ื ื‘ืืžืฆืขื•ืช console.log, ืคืงื•ื“ืช debugger, ืื• ืงืจื™ืื” ืœืฉื ื”ืžืฉืชื ื” ื‘ืžืกื•ืฃ. ืขืœื™ืš ืœื•ื•ื“ื ืฉื ื™ืชืŸ ืœืคืขื•ืœ ืขืœ ืกื•ื’ ื”ื ืชื•ื ื™ื ื”ื›ืœื•ืœ ื‘ืžืฉืชื ื”. ืื ื–ื” ืœื ืžืชืื™ื, ืฉื ื” ืื•ืชื•, ืœืžืฉืœ, ื”ื•ืกืฃ ืชื ืื™ ืื• try..catch block - ื•ืงื‘ืœ ืฉืœื™ื˜ื” ืขืœ ื‘ื™ืฆื•ืข ื”ืคืขื•ืœื”.

ืขืจื™ืžืช ื”ืฆืคื™ืคื•ืช

ืื ืืชื” ืžืืžื™ืŸ ืœืžื—ื‘ืจื™ ื”ืžื™ืœื™ื ืœืฉื™ืจ Baby One More Time (ื–ื• ื‘ืจื™ื˜ื ื™ ืกืคื™ืจืก, ื›ืŸ), ืื– ื”ืžื™ืœื” ืœื”ื™ื˜ ื‘ื”ืงืฉืจ ื–ื” ืคื™ืจื•ืฉื” ืจืฆื•ื ื• ืฉืœ ื”ื–ืžืจ ืœื”ื™ืงืจื ืฉื•ื‘ (ื”ื ื” ื”ืกื‘ืจ ืขืœ ืขืฆื ื”ื”ืงืฉืจ ืฉืœ ืฉื™ืจ - ื”ืขืจืช ื”ืžืชืจื’ื). ื‘ื”ื—ืœื˜ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื”ืจืฆื•ืŸ ื”ื–ื” ื™ื‘ื™ื ืœืขืœื™ื™ื” ื‘ืžืกืคืจ ื”ืฉื™ื—ื•ืช ื‘ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื. ืื‘ืœ ื‘ืชื›ื ื•ืช, ื–ื•ื”ื™ ืจืงื•ืจืกื™ื” ืฉืขืœื•ืœื” ืœื’ืจื•ื ืœืฉื’ื™ืื” ืื โ€‹โ€‹ืžื—ืกื ื™ืช ื”ืฉื™ื—ื•ืช ืขื•ืœื” ืขืœ ื’ื“ื•ืชื™ื”.

ื”ืฉื’ื™ืื•ืช ื ืจืื•ืช ื›ืš:

ืฉื’ื™ืื”: ืื–ืœ ืฉื˜ื— ื”ืขืจื™ืžื” (Edge)
ืฉื’ื™ืื” ืคื ื™ืžื™ืช: ื™ื•ืชืจ ืžื“ื™ ืจืงื•ืจืกื™ื” (Firefox)
RangeError: ื—ืจื’ ืžื’ื•ื“ืœ ืขืจื™ืžืช ื”ืฉื™ื—ื•ืช ื”ืžืงืกื™ืžืœื™ืช (Chrome)

ื”ืฆืคืช ืžื—ืกื ื™ืช ืžืชืจื—ืฉืช ืื ื”ืžืคืชื— ืื™ื ื• ืžื—ืฉื™ื‘ ืืช ื”ืžืงืจื” ื”ื‘ืกื™ืกื™ ื‘ืจืงื•ืจืกื™ื”, ืื• ืื ื”ืงื•ื“ ืื™ื ื• ืžืชื™ื™ื—ืก ืœืžืงืจื” ื”ืžื™ื•ืขื“.

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)
}

ื“ื•ื’ืžื” ืœื›ืš ื”ื™ื ืžืงืจื™ื ืขื ืœื•ืœืื•ืช ืื™ื ืกื•ืคื™ื•ืช, ื›ืืฉืจ ื”ืžืขืจื›ืช ืื™ื ื” ืžื™ื™ืฆืจืช ื”ื•ื“ืขืช ืฉื’ื™ืื”, ืืš ื”ืขืžื•ื“ ื‘ื• ืžื‘ื•ืฆืข ืงื•ื“ ื”-JavaScript ืคืฉื•ื˜ ืงื•ืคื. ื–ื” ืงื•ืจื” ืื ืœืœื•ืœืืช while ืื™ืŸ ืชื ืื™ ืกื™ื•ื.

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
}

ืื™ืชื•ืจ ื‘ืื’ื™ื ืื™ื ืกื•ืฃ ืœื•ืœืื•ืช ื•ืจืงื•ืจืกื™ื•ืช

ืื ื™ืฉ ืœืš ื‘ืขื™ื™ืช ืœื•ืœืื” ืื™ื ืกื•ืคื™ืช, ืขืœื™ืš ืœืกื’ื•ืจ ืืช ื”ื›ืจื˜ื™ืกื™ื™ื” ื‘ื›ืจื•ื ืื• ื‘-Edge, ื•ืœืกื’ื•ืจ ืืช ื—ืœื•ืŸ ื”ื“ืคื“ืคืŸ ื‘ืคื™ื™ืจืคื•ืงืก. ืœืื—ืจ ืžื›ืŸ, ืขืœื™ืš ืœื ืชื— ื‘ืงืคื™ื“ื” ืืช ื”ืงื•ื“. ืื ืื™ื ืš ืžื•ืฆื ืืช ื”ื‘ืขื™ื”, ื›ื“ืื™ ืœื”ื•ืกื™ืฃ ืคืงื•ื“ืช ื‘ืื’ื™ื ืœืœื•ืœืื” ืื• ืœืคื•ื ืงืฆื™ื” ื•ืœื‘ื“ื•ืง ืืช ืขืจื›ื™ ื”ืžืฉืชื ื™ื. ืื ื”ืชื•ืฆืื” ืœื ืชื•ืืžืช ืืช ื”ืฆืคื•ื™, ืื– ืื ื—ื ื• ืžื—ืœื™ืคื™ื ืื•ืชื”, ื–ื” ื™ื›ื•ืœ ืœื”ื™ืขืฉื•ืช ื‘ืงืœื•ืช.

ื‘ื“ื•ื’ืžื” ืฉืœืžืขืœื”, ื™ืฉ ืœื”ื•ืกื™ืฃ ื‘ืื’ื™ื ื›ืฉื•ืจื” ื”ืจืืฉื•ื ื” ืฉืœ ื”ืคื•ื ืงืฆื™ื” ืื• ื”ืœื•ืœืื”. ืœืื—ืจ ืžื›ืŸ ืขืœื™ืš ืœืคืชื•ื— ืืช ื›ืจื˜ื™ืกื™ื™ืช ื ื™ืคื•ื™ ื”ื‘ืื’ื™ื ื‘-Chrome, ื•ืœื ืชื— ืืช ื”ืžืฉืชื ื™ื ื‘ื”ื™ืงืฃ. ื‘ืืžืฆืขื•ืช ื”ื›ืคืชื•ืจ ื”ื‘ื ืชื•ื›ืœ ืœืขืงื•ื‘ ืื—ืจ ื”ืฉื™ื ื•ื™ื™ื ืฉืœื”ื ื‘ื›ืœ ืื™ื˜ืจืฆื™ื”. ื›ืœ ื–ื” ืงืœ ืœืขืฉื•ืช, ื•ื‘ืจื•ื‘ ื”ืžืงืจื™ื ื”ื‘ืขื™ื” ื ืžืฆืืช.

ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขื•ื“ ืขืœ ื›ืœ ื–ื” ื›ืืŸ (ืขื‘ื•ืจ ื›ืจื•ื) ื•ื”ื ื” (ืขื‘ื•ืจ ืคื™ื™ืจืคื•ืงืก).

ืฉื’ื™ืืช ืชื—ื‘ื™ืจ

ืื—ืช ื”ืฉื’ื™ืื•ืช ื”ื ืคื•ืฆื•ืช ื‘ื™ื•ืชืจ ื‘-JavaScript ื”ื™ื SyntaxError. ื”ืจื—ื‘ื•ืช ืขื•ืจืš ื˜ืงืกื˜ ื™ืขื–ืจื• ืœืš ืœื”ื™ืžื ืข ืžื”ืŸ. ืœื“ื•ื’ืžื”, Bracket Pair Colorizer ืžืกืžืŸ ืกื•ื’ืจื™ื™ื ื‘ืงื•ื“ ื‘ืฆื‘ืขื™ื ืฉื•ื ื™ื, ื•-Prettier ืื• ื›ืœื™ ื ื™ืชื•ื— ื“ื•ืžื” ืžืืคืฉืจื™ื ืœืžืฆื•ื ื‘ืžื”ื™ืจื•ืช ืฉื’ื™ืื•ืช. ื”ืืคืฉืจื•ืช ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœื”ืคื—ื™ืช ืืช ื”ืกื‘ื™ืจื•ืช ืœ-SyntaxError ื”ื™ื ืงื™ื ื•ืŸ ืžื™ื ื™ืžืœื™.

ืฉืชืคื• ื‘ืชื’ื•ื‘ื•ืช: ืžื” ืืชื ืขื•ืฉื™ื ื›ื“ื™ ืœืžื ื•ืข ื˜ืขื•ื™ื•ืช ืื• ืœื–ื”ื•ืช ื•ืœื—ืกืœ ืื•ืชืŸ ื‘ืžื”ื™ืจื•ืช?

Skillbox ืžืžืœื™ืฆื”:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”