JavaScript-ի հիմնական դասագիրք

Հիմունքներ

Ներածություն JavaScript-ի գործարկում Առաջին ծրագիրը JavaScript-ով Ծրագրի կոդի վերլուծություն Հաջորդ օրինակները Սկրիպտներով ֆայլեր Մի քանի ֆայլ Ծանոթություն Ֆայլերի քեշավորում Խիստ ռեժիմ Մեկնաբանություններ Փոփոխականներ Փոփոխականների օգտագործում Մի քանի փոփոխականի հայտարարում Փոփոխականների արժեքների փոփոխություն Մի քանի let մեկ փոփոխականի համար Մաթեմատիկական գործողություններ թվերով Մաթեմատիկական գործողություններ փոփոխականներով Մաթեմատիկական գործողությունների առաջնահերթություն Հավասար առաջնահերթություն Խմբավորող փակագծեր Կոտորակներ Բացասական թվեր Պլյուս փոփոխականներից առաջ Բաժանման մնացորդ Աստիճան բարձրացնելը Աստիճան բարձրացնելու առաջնահերթություն Տողեր Տողերի գումարում Տողի երկարություն Կաղապարային տողեր Բազմատողություն Հատուկ արժեքներ Undefined արժեք Null արժեք True և false արժեքներ NaN արժեք Infinity և -Infinity Կոնսոլ Տվյալների տիպ կոնսոլում Սխալներ կոնսոլում Կոնստանտներ Տիպերի ավտոմատ ձևափոխում Թվի ձևափոխում Թվի կարճ ձևափոխում Ոչ ճիշտ թվերի ձևափոխում Թվերի առանձնացում Տողի ձևափոխում Տողի ձևափոխման կիրառում Լոգիկական տիպի ձևափոխում Լոգիկական տիպի ձևափոխում Տողի սիմվոլներ Տողերի անփոփոխելիություն Տողի վերջին սիմվոլը Թվանշաններով տողեր Թվի թվանշաններին դիմելը Փոփոխականը փոխելու գործողություններ Կրճատ գործողություններ JavaScript-ում Ինկրեմենտացիա Նախածանցային և վերջածանցային տիպ Ոչ ճշգրիտ հաշվարկներ Prompt ֆունկցիա Տիպերի խնդիր prompt-ում Ելք դոկումենտում Սխալներ գտնելու պրակտիկա Գործողությունների պրակտիկա Բանաձևերի պրակտիկա

Զանգվածներ

Ներածություն զանգվածների մասին Տարրերի ստացում Զանգվածի երկարությունը Տարրերի փոփոխում Զանգվածի տարրերի վերագրանցում Տարրերի ինկրեմենտացիա Տարրերի ավելացում բանալիներով Հազիվանդ զանգվածներ Տարրերի ավելացում push-ի միջոցով Բանալիներ փոփոխականներից Delete օպերատորը Սխալների որոնման պրակտիկա

Օբյեկտներ

Ներածություն օբյեկտների մասին Ամբողջ օբյեկտի ցուցադրում Օբյեկտների տողային բանալիներ Օբյեկտների հատկություններ Սահմանափակումներ օբյեկտների բանալիների վրա Տարրերի փոփոխում Տարրերի ավելացում Օբյեկտների անհերթականություն Օբյեկտի բանալիների զանգված Օբյեկտի երկարություն Բանալիներ փոփոխականներից Տարրին դիմելու սխալ Հատկությանը դիմելու սխալ Հաշվարկվող հատկություններ In օպերատոր Delete օպերատոր Օբյեկտների տիպավորում Զանգվածներ որպես օբյեկտներ Տարբերակում ենք զանգվածները օբյեկտներից Օբյեկտներ և պրիմիտիվներ Օբյեկտների փոխանցում հղումով Կոնստանտներ Ծրագրավորման մոտեցում կոնստանտների միջոցով Սխալների որոնման պրակտիկա

Պայմաններ

if-else կառուցվածքը Մեծ և փոքր օպերատորները Հավասարության ստուգում Անհավասարության ստուգում Փոփոխականների համեմատում Տողերի հավասարություն Տողերի և թվերի հավասարություն Արժեքով և տիպով հավասարություն Արժեքով և տիպով անհավասարություն Լոգիկական Եվ Լոգիկական Կամ Լոգիկական օպերատորների նախապատվությունը Պայմանների խմբավորում Լոգիկական արտահայտությունների հակադարձում Բուլյան արժեքներով պայմաններ Բուլյան տիպի արժեքների համեմատում Ճշմարտության ստուգման կրճատ ձև Կեղծիքի ստուգման կրճատ ձև Ստուգման ընդհանուր կրճատ ձև Բարդ պայմաններ կրճատ ձևով else կառուցվածքի ոչ պարտադիր լինելը Փակագծերի ոչ պարտադիր լինելը Փակագծերի ոչ պարտադիր լինելու խնդիրը else if կառուցվածքը Ծածկված if-else կառուցվածքներ switch-case կառուցվածքը break-ի ոչ պարտադիր լինելը Տերնար օպերատորը Լոգիկական գործողություններ confirm ֆունկցիան Տեսանելիության տիրույթ Տեսանելիության տիրույթի նրբություններ Ժամի մասերի ստուգում Տողերի և զանգվածների երկարության ստուգում Տողի նիշերի ստուգում Թվի թվանշանների ստուգում Բաժանման մնացորդի ստուգում Սխալներ գտնելու պրակտիկա Պրակտիկա

Ցիկլեր

Ներածություն For-of ցիկլ For-in ցիկլ While ցիկլ For ցիկլ For ցիկլ զանգվածների համար Պայմաններ ցիկլերում Թվերի գումարի կուտակում Տարրերի գումարի կուտակում Տողերի ձևավորում Թվի թվանշաններ Ճաղավանդակային փակագծերի ոչ պարտադիր լինելը Փակագծերի ոչ պարտադիր լինելու խնդիրը Break հրահանգ Continue հրահանգ Ծածկված ցիկլեր Տեսանելիության տիրույթ Ծածկված ցիկլեր և տեսանելիության տիրույթ Զանգվածների լցոնում Զանգվածների փոփոխում Օբյեկտների լցոնում Օբյեկտների փոփոխում Դրոշների հետ աշխատանք Ծրագրավորման խորհուրդներ Կոդի վրիպազերծման խորհուրդներ Սխալների որոնման պրակտիկա Պրակտիկա

Բազմաչափություն

Բազմաչափ զանգվածներ Եռաչափ զանգված Կամայական զանգվածներ Բազմաչափ զանգվածների փոփոխություն Փոփոխություն սովորական for-ի միջոցով Բազմաչափ զանգվածների լցոնում Խնդիրներ բազմաչափ զանգվածների լցոնման ժամանակ Բազմաչափ զանգվածների լցոնում ըստ հերթականության Բազմաչափ օբյեկտներ Բազմաչափ օբյեկտների փոփոխություն Բազմաչափ կառուցվածքներ Բազմաչափ կառուցվածքների փոփոխություն Օբյեկտների զանգված Բանալիներ փոփոխականներից Տարրերի ավելացում զանգվածներում Տարրերի ավելացում օբյեկտներում

Ստանդարտ մեթոդներ

Աստիճաններ Կլորացման ֆունկցիաներ Էքստրեմումներ Ռանդոմ Մոդուլներ Սիմվոլների ռեգիստր Տողերի կտրում Որոնում տողերում Փոխարինում տողերում Տողերի բաժանում Վերջնական էլեմենտներ Զանգվածների մասեր Զանգվածների կտրում Որոնում զանգվածներում Օբյեկտների բանալիներ Սխալներ գտնելու պրակտիկա

Օգտագործողի ֆունկցիաներ

Ներածություն Ֆունկցիայի պարամետրեր Մի քանի պարամետր Փոփոխական պարամետրեր Լրացուցիչ պարամետրեր Return հրահանգ Ֆունկցիաների հաջորդական կանչ Return-ի նրբություն Ցիկլ և return Return-ի կիրառում ցիկլերում Return-ի հետ աշխատանքի մեթոդ Դրոշներ ֆունկցիաներում Լոգիկական օպերատորներ ֆունկցիաներում Խորհուրդներ ֆունկցիաների վերաբերյալ Սխալների որոնման պրակտիկա Պրակտիկա ֆունկցիաների վերաբերյալ

Ֆունկցիաների փոփոխականներ

Գլոբալ փոփոխականներ Լոկալ փոփոխականներ Փոփոխականների անունների համընկնում Գլոբալ փոփոխականների փոփոխում Գլոբալ փոփոխականներ և ֆունկցիաների պարամետրեր Անունների համընկնում պարամետրերի հետ Օբյեկտ-պարամետրեր

Ֆունկցիաների տեսակները

Ֆունկցիայի սկզբնական կոդը և արդյունքը Ֆունկցիան որպես փոփոխական Ֆունկցիայի գրառումը մեկ այլ փոփոխականում Ֆունկցիաների վերագրումը փոփոխականներին Ֆունկցիայի և փոփոխականի անվան համընկնում Հայտարարումների տեսակները Ֆունկցիայի հայտարարումների տարբերությունը Ստորակետ ֆունկցիաների հայտարարումիս Ֆունկցիոնալ արտահայտությունների նրբությունները Անունով ֆունկցիա, բայց Function Expression Անվանված ֆունկցիոնալ արտահայտություններ Ինչպես ստուգել ֆունկցիայի տեսակը Արտահայտությունը ձախից Արտահայտությունը աջից Զանգված ֆունկցիաներով Օբյեկտ ֆունկցիաներով Ֆունկցիաներով օբյեկտի կիրառումը

Ծածկագրված ֆունկցիաներ

Ֆունկցիաների փոխանցումը պարամետրերով Անվանված ֆունկցիաներ Փոխանցվող ֆունկցիաների պարամետրեր Թվի փոխանցումը պարամետրով Կիրառում Ներքին ֆունկցիաներ Ծածկագրված ֆունկցիաների տեսանելիության տիրույթ Արտաքին ֆունկցիայի պարամետրեր Արտաքին և ներքին ֆունկցիաների պարամետրեր Նույնանուն պարամետրեր Ֆունկցիա, որ վերադարձնում է ֆունկցիա Ծածկագրման ցանկացած մակարդակ Վերադարձվող ֆունկցիայի պարամետրեր Կոլբեք ֆունկցիաներ Կոլբեքների նրբություններ Սլաքային ֆունկցիաներ Սլաքային ֆունկցիաների կիրառում սինխ. թարգմանության հետ

Փակումներ

Մուտք դեպի արտաքին փոփոխականներ Ֆունկցիաների լեքսիկական միջավայր Լեքսիկական միջավայրի կիրառումը Ներածություն փակումների մասին Հաշվիչ փակումների միջոցով Նյուանս՝ տեղական փոփոխական Նյուանս՝ գլոբալ փոփոխական

IIFE

Ֆունկցիայի անմիջական կանչ Ֆունկցիայի վերագրում փոփոխականին Ֆունկցիայի անմիջական կանչի կիրառումը Կլոր փակագծեր Պարամետրեր Բազմակի կանչեր Խորտակման վտանգներ Պաշտպանական ստորակետ Փակումներ եւ IIFE

Ռեկուրսիա

Ներածություն Օրինակ պարամետրով Զանգվածի տարրերի գումարը ռեկուրսիայի դեպքում Բազմաչափ կառուցվածքներ Զանգվածի տարրերի գումարը Մանիպուլյացիաներ կառուցվածքներով

Իտերացիոն մեթոդներ

Map մեթոդ forEach մեթոդ Filter մեթոդ Every մեթոդ Some մեթոդ Find մեթոդ թարգմանություն, առաջադրանքներ Reduce մեթոդ թարգմանություն, առաջադրանքներ

Տարածման օպերատոր

Ներածություն Ավելի բարդ օրինակներ Զանգվածի ծայրահեղ արժեքներ Զանգվածների միաձուլում Տողերի տրոհում Թվերի տրոհում

Մնացորդի օպերատոր

Մնացորդի օպերատոր Թվանշանների գումար Զանգվածները երկչափ Զանգվածները մեկի մեջ

Դեստրուկտուրացիա

Զանգվածների դեստրուկտուրացիա Զանգված ֆունկցիայից Զանգվածի տարրերի բաց թողում Զանգվածի ավելորդ արժեքներ Զանգվածի մնացորդ Լռելյայն արժեքներ զանգվածների համար Լռելյայն ֆունկցիաներ զանգվածների համար Փոփոխականների հայտարարում զանգվածների համար Օբյեկտների դեստրուկտուրացիա Փոփոխականների անուններ օբյեկտների համար Լռելյայն արժեքներ օբյեկտների համար Փոփոխականներ և լռելյայն արժեքներ օբյեկտների համար Փոփոխականների հայտարարում օբյեկտների համար Ֆունկցիայի պարամետրեր Ֆունկցիայի պարամետրերի օբյեկտների դեստրուկտուրացիա

Ժամանակ

Date օբյեկտի հետ աշխատանք Ձևավորում Ամսաթվի ֆորմատի փոփոխություն Շաբաթվա օրվա ստացում Ամսաթվի բառային արտածում Ժամանակի սահմանում Timestamp ֆորմատ Timestamp-ների տարբերություն Ամսաթվերով օբյեկտների տարբերություն Ամսաթվերի ավտոմատ ուղղում Ամսվա վերջին օրվա հայտնաբերում Նահանջ տարվա որոշում Ճիշտության ստուգում Ընթացիկ տարվա օրվա ստացում Հաջորդ կամ նախորդ ամսվա օր Հաջորդ կամ նախորդ տարվա օր Պահերի տարբերություն Օրվա ժամանակի պահ Օրվա սկիզբ Օրվա ավարտ Ժամանակի պահերի ցիկլային ստուգում Ժամանակի պահերի ստացման պրակտիկա Տողային համեմատություն Ամսաթվի համեմատություն առանց տարվա Ամսաթվի ընկնելը միջակայքում Ամսաթվով օբյեկտների համեմատություն

DOM-ի ներածություն

Ներածություն DOM տարրեր DOM տարրերի ստացում DOM տարրի բարդ ընտրիչներ Մշակիչների կապում Անվանված մշակիչներ Մեկ մշակիչ տարրերին Մեկ իրադարձության մշակիչներ Տարբեր իրադարձությունների մշակիչներ Տարրի տեքստ Տարրի HTML կոդ Տեգերի ատրիբուտները որպես հատկություններ Աշխատանք տեքստային դաշտերի հետ Տեքստային դաշտերի կենտրոնացում Վերացող ատրիբուտներ Մեթոդների և հատկությունների շղթաներ Շղթաների առավելություններն ու թերությունները this օբյեկտ this-ի առավելությունը Տարրերի խմբի ստացում Ցիկլում անվանված մշակիչներ Ցիկլում անանուն մշակիչներ Իրադարձությունների մշակիչների անկապում Ցիկլում մշակիչների անկապում Անանուն մշակիչների անկապում Կոդ գրելու խորհուրդներ Սխալներ գտնելու պրակտիկա Պրակտիկում

Ատրիբուտներ

Ատրիբուտներ ստանալու մեթոդ Ատրիբուտներ նշելու մեթոդ Ատրիբուտներ հեռացնելու մեթոդ Ատրիբուտներ ստուգելու մեթոդ Օգտագործողի ատրիբուտներ Դեպիոններով ատրիբուտների անուններ Ատրիբուտներին դիմելը մեթոդներով CSS դասերի զանգված CSS դասերի ավելացում CSS դասերի հեռացում CSS դասերի ստուգում CSS դասերի տոգլինգ

Ոճավորում

Ոճավորում style ատրիբուտի միջոցով Դեֆիսով հատկությունների ոճավորում Տարրերի ոճավորման բացառություն CSS դասերի միջոցով ոճավորում CSS դասերի միջոցով ոճավորման առավելություն Ոճավորման կիրառում

Որոնում

Տարրերի ժառանգների հայտնաբերում Տարրերի ծնողների հայտնաբերում Տարրերի բոլոր ծնողների որոնում Տարրերի հարևանների որոնում Տարրի որոնում id-ով Տարրի որոնում տեգի անունով Տարրի որոնում դասի անունով Որոնում տարրի ներսում

Հանգույցներ

Ներածություն Հանգույցների թվարկում Հանգույցների անվանում Հանգույցների տեսակ Հանգույցների տեքստ

Դաշտեր

Աշխատանք textarea դաշտի հետ Տարրերի արգելափակում Աշխատանք checkbox-ների հետ Արժեքներ չունեցող ատրիբուտների հերթափոխ Աշխատանք ռադիոկոճակների հետ Change իրադարձություն Input իրադարձություն Focus և blur մեթոդներ Սխալներ գտնելու պրակտիկա

Ընտրացանկեր

Ընտրացանկերի հետ աշխատանք Value ատրիբուտը ընտրացանկերում Ընտրված տարրի փոփոխում Ընտրված տարրի համարը Ընտրացանկի տարրերի ստացում Տարրերը որպես զանգված Ընտրացանկի տարրերի հետ աշխատանք Ընտրացանկի տարրի ընտրություն Ընտրված տարրի ստացում

Event օբյեկտ

Event օբյեկտի հետ աշխատանքի հիմունքներ Իվենթի կոորդինատները Իվենթի տեսակը Իվենթի էլեմենտը Սեղմված ստեղնների ստացում Մոդիֆիկատոր ստեղնների հետևում Լռելյայն գործողության չեղարկում Իվենթների բաբլում � Թիրախային էլեմենտ բաբլման ժամանակ Իվենթների բաբլման դադարեցում Մի քանի հենդլերներ էլեմենտի վրա Բաբլման անմիջական դադարեցում Իվենթների բաբլման դադարեցման կիրառում Իվենթների կապտավորում Հենդլերներ նոր էլեմենտների վրա Իվենթների դելեգացում Ունիվերսալ իվենթների դելեգացում

Կոնտեքստ

Կոնտեքստի հետ աշխատանքի հիմունքներ Չկապված ֆունկցիայի կոնտեքստ Կոնտեքստի կորուստ Կոնտեքստի խնդրի լուծում Լուծում փոփոխականի միջոցով Լուծում պարամետրի միջոցով Լուծում սլաքային ֆունկցիայի միջոցով call մեթոդ call մեթոդ պարամետրերով apply մեթոդ bind մեթոդ

Թայմերներ

Թայմերի գործարկում Հաշվիչ թայմերի վրա Թայմերի դադարեցում Գործարկման կոճակներ Բազմակի գործարկում Դադարեցման կոճակներ Աշխատանք DOM-ի հետ Թայմերներ և կոնտեքստի կորուստ Թայմերների և DOM-ի պրակտիկա Հետաձգում կատարումից առաջ Թայմեր հետաձգման միջոցով

Տարրերի կառավարում

Տարրերի ստեղծում և տեղադրում Իրադարձությունների կապում տեղադրման ժամանակ Տարրերի ստեղծում ցիկլում Մշակիչների կապում ցիկլում Տարրերի հեռացում Եզրային տեղադրում Տեղադրում նախքան Հարևանային տեղադրում Հարևանային տեղադրում թեգեր Տարրերի կլոնավորում Տարրերի ստուգում

Պրակտիկա

Էլեմենտների ստեղծում զանգվածից Ցուցակների ul ստեղծման պրակտիկա Աղյուսակների ստեղծում Աղյուսակների հաջորդական լրացում Աղյուսակի ստեղծում զանգվածից Աղյուսակի ստեղծում օբյեկտների զանգվածից Շարքերի և սյունակների ավելացում աղյուսակում Աղյուսակի բջիջների փոփոխում Նոր էլեմենտների հեռացում Էլեմենտի հեռացման հղում Հեռացման հղումների ստեղծում Առանձին էլեմենտի խմբագրում Թաքցնել տեքստը խմբագրելիս Խմբագրում էլեմենտների հավաքածուում Հեռացում և խմբագրում Էլեմենտների ոճավորում Էլեմենտը թաքցնելու և ցույց տալու կոճակներ Շատ էլեմենտներ ցուցադրման կոճակներով Էլեմենտների ակտիվացում Ակտիվացման ոճերի հերթագայություն Պրակտիկա էլեմենտների փոփոխման վերաբերյալ

Ֆունկցիաներ եւ DOM

DOM տարրի հետ աշխատելու ֆունկցիաներ Տարրերի խմբի հետ աշխատելու ֆունկցիաներ Կոլբեքի փոխանցում DOM-ի հետ աշխատելու համար Հերթական համարի փոխանցում կոլբեքին Տարրի փոխանցումը որպես ֆունկցիայի պարամետր Տարրերի խմբի փոխանցումը որպես պարամետրեր HTML աղյուսակներ ստեղծելու ֆունկցիա Աղյուսակի վերադարձ ֆունկցիայից Զանգվածից աղյուսակ ստեղծելու ֆունկցիա

Մոդուլներ փակումների միջոցով

Փոփոխականների կոնֆլիկտներ Մոդուլներ փակումների միջոցով Գործնական կիրառում Պարամետրերի փոխանցում Ծնող էլեմենտի փոխանցում Մոդուլի կարգավորումների փոխանցում Լռելյայն պարամետրեր Փոփոխականների և ֆունկցիաների էքսպորտ Օբյեկտի էքսպորտ մոդուլներում փակումների միջոցով Գրադարաններ փակումների միջոցով
esbyit