Հայտարարությունները ցանկացած ծրագրավորման լեզվի հիմնական կառուցվածքն են, և JavaScript-ի օբյեկտների նման, JavaScript-ի հայտարարությունները նույնպես ունեն «արտաքին տեսք այլ լեզուների, բայց իրականում բոլորովին նույնը չէ»:

Մեր ավելի տարածված հայտարարությունները ներառում են փոփոխական հայտարարություններ, արտահայտություններ, պայմաններ, օղակներ և այլն: Սրանք բաներ են, որոնց բոլորը շատ լավ ծանոթ են, և ես այստեղ չեմ մանրամասնի նրանց վարքագծի մասին:

Որպեսզի հասկանանք, թե ինչն է առանձնահատուկ JavaScript-ի հայտարարություններում, նախ պետք է նայենք ավելի քիչ տարածված օրինակին: Ես կօգտագործեմ այս օրինակը, որպեսզի ձեզ ծանոթացնեմ JavaScript-ի հայտարարությունների կատարման մեխանիզմում ներգրավված հիմնական տեսակին. Ավարտման տեսակը:

Ավարտման տեսակ

Դիտարկենք օրինակ. Function foo-ում օգտագործվում են փորձի հայտարարությունների մի շարք: Մենք կարող ենք նախ մի փոքր փորձ անել: Եթե ​​փորձի մեջ կա վերադարձի հայտարարություն, արդյո՞ք ներսում բովանդակությունը վերջապես դեռ կկատարվի: Եկեք նայենք կոդի մի հատվածին.

function foo(){
  try{
    return 0;
  } catch(err) {

  } finally {
    console.log("a")
  }
}

console.log(foo());

Փաստացի փորձերի միջոցով մենք կարող ենք տեսնել, որ վերջապես իսկապես կատարվում է, և վերադարձի հայտարարությունը նույնպես արդյունավետ է, և foo()-ը վերադարձնում է 0-ի արդյունք:

Չնայած վերադարձը կատարվում է, ֆունկցիան անմիջապես չի վերադառնում, և բովանդակությունը վերջապես կատարվում է: Այս պահվածքը խախտում է շատերի ինտուիցիան։

Ի՞նչ տեղի կունենա, եթե այս օրինակում վերջապես ավելացնենք վերադարձի հայտարարություն:

function foo(){
  try{
    return 0;
  } catch(err) {

  } finally {
    return 1;
  }
}

console.log(foo());

Փաստացի կատարման միջոցով մենք տեսնում ենք, որ վերադարձը վերջապես «գերակայում է» փորձի վերադարձին: Գործառույթում երկու անգամ վերադարձի կատարումը շատ մարդկանց ողջամտությունից դուրս է, և դա նաև վարքագիծ է, որը չի երևում այլ լեզուներում:

Նման տարօրինակ վարքագծի դեպքում մենք, անշուշտ, կարող ենք հիշել այն որպես մեկուսացված գիտելիք, բայց իրականում դրա հետևում գործում են մի շարք մեխանիզմներ:

Այս մեխանիզմի հիմքը JavaScript հայտարարության կատարման ավարտի կարգավիճակն է: Այն ներկայացնելու համար մենք օգտագործում ենք ստանդարտ տեսակ՝ Ավարտական ​​գրառում (ես նշել եմ…