Bẹẹni, Mo tun ṣe: N ṣatunṣe aṣiṣe ti o wọpọ ni JavaScript

Bẹẹni, Mo tun ṣe: N ṣatunṣe aṣiṣe ti o wọpọ ni JavaScript

Kikọ koodu JavaScript le jẹ nija ati nigbakan idẹruba ni otitọ, bi ọpọlọpọ awọn olupilẹṣẹ ti faramọ pẹlu. Ninu ilana iṣẹ, awọn aṣiṣe yoo waye, ati pe diẹ ninu wọn ni a tun ṣe nigbagbogbo. Nkan yii, ti a pinnu si awọn olupilẹṣẹ alakobere, sọrọ nipa awọn aṣiṣe wọnyi ati bii o ṣe le yanju wọn. Fun wípé, awọn orukọ ti awọn iṣẹ, ini ati awọn ohun ti wa ni ya lati gbajumo orin. Gbogbo eyi ṣe iranlọwọ fun ọ ni kiakia lati ranti bi o ṣe le ṣatunṣe awọn aṣiṣe ti o wọpọ.

A leti: fun gbogbo awọn oluka ti "Habr" - ẹdinwo ti 10 rubles nigbati o forukọsilẹ ni eyikeyi iṣẹ-ẹkọ Skillbox nipa lilo koodu ipolowo “Habr”.

Skillbox ṣe iṣeduro: Ilana ti o wulo "Olugbese Alagbeka PRO".

IruError: ohun ini ko ni asọye

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)

Awọn koodu apẹẹrẹ loke ju aṣiṣe Uncaught TypeError: Ko le ka ohun ini 'orire' ti aisọye. Iṣoro naa ni pe nkan ọmọbirin naa ko ni ohun-ini ti a darukọ, botilẹjẹpe o ni ohun-ini orukọ. Ati pe niwọn igba ti ohun-ini ti a npè ni ọmọbirin ko ni asọye, o ko le wọle si, nitori ni deede ko si tẹlẹ. Ṣugbọn ti o ba rọpo girl.named.lucky pẹlu girl.name, lẹhinna ohun gbogbo yoo ṣiṣẹ ati pe eto naa yoo pada si orire.

O le ni imọ siwaju sii nipa awọn ohun-ini ka nibi.

Bii o ṣe le yanju Awọn aṣiṣe Type

Awọn aṣiṣe Iru waye nigbati pirogirama kan gbiyanju lati ṣe awọn iṣe lori data ti ko baramu iru kan pato. Awọn apẹẹrẹ pẹlu lilo .bold (), béèrè fun ohun-ini aisọye, tabi pipe iṣẹ ti kii ṣe iṣẹ kan.

Nitorina, ti o ba gbiyanju lati pe ọmọbirin (), iwọ yoo gba aṣiṣe Uncaught TypeError: yourVariable.bold kii ṣe iṣẹ kan ati pe ọmọbirin kii ṣe iṣẹ kan, nitori pe o jẹ ohun ti a npe ni gangan, kii ṣe iṣẹ kan.

Lati le yọkuro awọn aṣiṣe, o nilo lati ṣe iwadi awọn oniyipada. Nitorina, kini ọmọbirin kan? Kí ni girl.oruko? O le rii nipa ṣiṣe ayẹwo koodu naa, iṣafihan awọn oniyipada nipa lilo console.log, aṣẹ yokokoro, tabi pipe orukọ oniyipada ninu console. O nilo lati rii daju pe o ṣee ṣe lati ṣiṣẹ lori iru data ti o wa ninu oniyipada. Ti ko ba baamu, yi pada, fun apẹẹrẹ, ṣafikun ipo kan tabi gbiyanju..catch Àkọsílẹ - ati gba iṣakoso lori ipaniyan iṣẹ naa.

Akopọ akopọ

Ti o ba gbagbọ awọn onkọwe ti awọn orin si orin Baby One More Time (eyi ni Britney Spears, bẹẹni), lẹhinna ọrọ ti o kọlu ni aaye yii tumọ si ifẹ ti akọrin lati pe lẹẹkansi (eyi ni alaye ti ọrọ-ọrọ pupọ ti orin - akọsilẹ onitumọ). O le jẹ daradara pe ifẹ yii yoo ja si ilosoke ninu nọmba awọn ipe ni igbesi aye gidi. Ṣugbọn ni siseto, eyi jẹ iṣipopada ti o le fa aṣiṣe ti akopọ ipe ba ṣan.

Awọn aṣiṣe dabi eyi:

Aṣiṣe: Ko si aaye akopọ (Edge)
Aṣiṣe inu: isọdọtun pupọ ju (Firefox)
Aṣiṣe Range: Iwọn akopọ ipe ti o pọju ti kọja (Chrome)

Aponsedanu akopọ waye ti olupilẹṣẹ ko ba gbero ọran ipilẹ ni atunwi, tabi ti koodu ko ba koju ọran ti a pinnu.

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

Ni idi eyi, stillBelieve ko le jẹ eke, nitorinaa ọkanMoreTime ni yoo pe ni igba kọọkan, ṣugbọn iṣẹ naa kii yoo pari.

Ti o ba bẹrẹ gbigbe ara awọn ọrẹ meji, eyi yoo dinku adawa, ati pe iwọ kii yoo ni lati duro fun ipe kan.

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

Apẹẹrẹ jẹ awọn ọran pẹlu awọn iyipo ailopin, nigbati eto naa ko ṣe ifilọlẹ ifiranṣẹ aṣiṣe, ṣugbọn oju-iwe eyiti koodu JavaScript ti ṣiṣẹ ni didi ni irọrun. Eyi yoo ṣẹlẹ ti lupu lakoko ko ni ipo ifopinsi.

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

O le yanju iṣoro naa bi atẹle:

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

N ṣatunṣe aṣiṣe awọn yipo ailopin ati awọn atunṣe

Ti o ba ni iṣoro loop ailopin, o nilo lati pa taabu naa ni Chrome tabi Edge, ki o si tii window ẹrọ aṣawakiri ni Firefox. Lẹhin eyi, o nilo lati farabalẹ ṣe itupalẹ koodu naa. Ti o ko ba le rii iṣoro naa, o tọ lati ṣafikun aṣẹ debugger si lupu tabi iṣẹ rẹ ati ṣayẹwo awọn iye ti awọn oniyipada. Ti abajade ko ba ni ibamu si ohun ti a reti, lẹhinna a rọpo rẹ, eyi le ṣee ṣe ni rọọrun.

Ninu apẹẹrẹ ti o wa loke, o yẹ ki o fi olu ṣatunṣe aṣiṣe kun bi laini akọkọ ti iṣẹ tabi lupu. Lẹhinna o nilo lati ṣii taabu yokokoro ni Chrome, itupalẹ awọn oniyipada ni iwọn. Lilo bọtini atẹle o le tọpa awọn ayipada wọn ni aṣetunṣe kọọkan. Gbogbo eyi rọrun lati ṣe, ati ni ọpọlọpọ igba iṣoro naa ni a rii.

O le ka diẹ sii nipa gbogbo eyi nibi (fun chrome) ati nibi (fun Firefox).

Aṣiṣe sintasi

Ọkan ninu awọn aṣiṣe ti o wọpọ julọ ni JavaScript jẹ SyntaxError. Awọn amugbooro olootu ọrọ yoo ran ọ lọwọ lati yago fun wọn. Fun apẹẹrẹ, Bracket Pair Colorizer samisi awọn biraketi ninu koodu pẹlu awọn awọ oriṣiriṣi, ati Prettier tabi ohun elo itupalẹ ti o jọra jẹ ki o ṣee ṣe lati wa awọn aṣiṣe ni kiakia. Aṣayan ti o dara julọ lati dinku iṣeeṣe ti SyntaxError jẹ itẹ-ẹiyẹ iwonba.

Pin ninu awọn asọye: kini o ṣe lati yago fun awọn aṣiṣe tabi yarayara rii ati imukuro wọn?

Skillbox ṣe iṣeduro:

orisun: www.habr.com

Fi ọrọìwòye kun