Skip to content

Latest commit

 

History

History
100 lines (88 loc) · 29.8 KB

README.md

File metadata and controls

100 lines (88 loc) · 29.8 KB

Martiros Saryan Armenia

Armenian JavaScript Community

About Us

Welcome to the Armenian JavaScript Community Repository. This space serves as a modest collection of resources, articles, and discussions focused on JavaScript programming language. Initially shared on a Facebook page of the same name, this repository aims to extend our reach to a broader audience interested in JavaScript, particularly in the Armenian language.

Here, we offer a variety of materials that range from basic concepts for beginners to more complex topics for experienced developers. The repository includes practical tasks and common programming problems, accompanied by various solutions and explanations. Our goal is to provide a platform for learning, sharing, and growing together as a community.

The contents are regularly updated to reflect new insights and developments in JavaScript. This ensures that the information remains relevant and useful for anyone interested in this programming language.

We welcome all who are curious about JavaScript, whether you are just starting out or looking to expand your existing knowledge. Join us in exploring the intriguing world of JavaScript programming, and feel free to contribute or share your insights.

Thank you for visiting, and we hope you find the resources here helpful in your programming journey!

License

This project is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License - see the LICENSE file for details.

Publications

Below is a list of our publications for easier navigation:

  1. Թարգմանության ֆրագմենտ «Brendan Eich - Popularity» էսսեյից
  2. Ի՞նչ է իրենից ներկայացնում ECMAScript-ը և ինչո՞վ է այն տարբերվում JavaScript-ից
  3. Ո՞րն է Null-ի և Undefined-ի նմանությունն ու տարբերությունը
  4. Ինչ տարբերություններ կան BigInt և Number տվյալների տիպերի միջև: Number տիպի ո՞ր թերությունները ստիպեցին JavaScript ծրագրավորման լեզվում ավելացնել նոր տվյալների տիպը՝ BigInt-ը
  5. JavaScript-ի զվարճալի տարօրինակությունները։ Մաս 1
  6. JavaScript… Ամենաէլեգանտ և միաժամանակ ամենաթերագնահատված լեզուն
  7. Խնդիր համար 1 - Պալինդրոմ (Palindrome)
  8. JavaScript-ի զվարճալի տարօրինակությունները։ Մաս 2
  9. Խնդիր համար 2 - Գտնել ձայնավորների քանակը բառի մեջ
  10. Ինչպես մնացորդով թվերից ստանալ ամբողջ թիվ, և ինչ մեթոդներ կան ստուգելու արդյո՞ք թիվը ամբողջ է թե ոչ
  11. Ստեղծենք ՖՈՒՆԿՑԻԱ, որը շատ ավելի ճշգրիտ է աշխատում և անհամեմատ օգտակար է, քան typeof օպերատորը
  12. Խնդիր համար 3 - Ի՞նչպես ստուգել թիվը պարզ է թե բաղադրյալ, ի՞նչպես գտնել մինչև տրված թիվը եղած բոլոր պարզ թվերը և «Էրատոսթենեսի մաղի» ալգորիթմը (Sieve of Eratosthenes)
  13. Map տվյալների կառուցվածքը. Փորձենք համեմատել օբյեկտների հետ. Ի՞նչ առավելություններ և թերություններ ունի
  14. Խնդիր համար 4 - Գտնել Ֆիբոնաչչիի հաջորդականության n-երորդ թիվը
  15. Set տվյալների կառուցվածքը: Փորձենք համեմատել զանգվածի հետ: Ո՞ր դեպքերում այն հիանալի այլընտրանք կլինի զանգվածին
  16. JavaScript-ի զվարճալի տարօրինակությունները։ Մաս 3
  17. Ինչպես որոնել տառը, բառը կամ ենթատողը տեքստի մեջ։ indexOf, lastIndexOf մեթոդների կիրառությունը
  18. Տեքստից ենթատեքստի ստացումը: Ի՞նչ մեթոդներ կան, ո՞րն է այդ մեթոդներից ամենաճկունը
  19. Ի՞նչպես կատարել զանգվածի տեսակավորում՝ (sorting) օգտագործելով ներդրված sort մեթոդը։ Ի՞նչու երբ տեսակավորում ենք թվերի զանգված, արդյունքը կարող է մեզ անակնկալի բերել, և ի՞նչպես կարող ենք որպես արգումենտ փոխանցվող ֆունկցիայի օգնությամբ ստանալ ճիշտ տեսակավորված թվերի զանգված։ Ի՞նչպես ստանալ էլեմենտների պատահական դասավորվածությամբ զանգված
  20. Մնացորդով բաժանման օպերատորը JavaScript-ում (%): Ինչպե՞ս օգտվելով մնացորդով բաժանումից արտածել տրված թիվը հակառակ հերթականությամբ(«Շրջել» այն)
  21. Ի՞նչ է NaN-ը և ինչպե՞ս ստուգել արժեքն արդյոք հավասար է NaN-ի: Ինչպե՞ս հնարավորինս խուսափել իրավիճակներից, որոնց արդյունքում կստանանք NaN: Նաև մի փոքր անվերջության և մինուս անվերջության մասին
  22. Խիստ ռեժիմը JavaScript-ում ("Strict mode"): Ինչու է անհրաժեշտ այն ակտիվացնել և ինչ առավելություններ ունի «սովորական» ռեժիմի հետ համեմատած
  23. Փոխգործակցությունը բրաուզերների հետ։ alert, prompt և confirm ֆունկցիաները։ Ի դեպ այս ֆունկցիաներն անմիջականորեն կապ չունեն JavaScript ծրագրավորման լեզվի ստանդարտի հետ, այլ բրաուզերի API-ին են պատկանում և նկարագրությունը մանրամասն տրվում է HTML Living Standard-ի մեջ։ Նաև առանց բարդ տերմինների, հնարավորինս մատչելի կբացատրեմ թե ինչ է API-ը
  24. Ի՞նչ է անագրամը: Ստեղծել ֆունկցիա, որը կստուգի թե տրված երկու բառերն արդյո՞ք անագրամ են
  25. CSS-ում կա {text-transform: capitalize} հատկությունը, որը տրված տեքստի յուրաքանչյուր բառի առաջին տառը վերափոխում է մեծատառի։ Մեր խնդիրն է JavaScript-ում ստեղծել ֆունկցիա, որը կանի նմանատիպ գործողություն
  26. Արդյո՞ք JavaScript-ի մայրամուտը մոտ է: Համացանցում պարբերաբար տարածվում են սենսացիոն նորություններ` մրցակից նոր ծրագրավորման լեզուների և տեխնոլոգիաների ի հայտ գալու մասին: ClojureScript, Elm, Dart և իհարկե հեղափոխական WebAssembly: Արդյո՞ք հիմնավոր են այդ կանխատեսումները
  27. Ի՞նչ հիմնական տիպերի են բաժանվում աղբյուրային կոդի խմբագրիչները (Source-code editor): Այնուամենայնիվ ո՞ր խմբագրիչն է ամենահարմարը վեբ ծրագրավորման մեջ օգտագործելու համար
  28. Տիպերի վերափոխումը JS-ում։ Ի՞նչ հնարավորություններ և ծուղակներ ունի իր մեջ ԹՈՒՅԼ տիպաբանությունը։ Ուղղակի և անուղղակի վերափոխումներ
  29. ** օպերատորը JavaScript-ում: Իսկ դուք գիտե՞ք, որ այն կարելի է օգտագործել նաև արմատ հանելու համար: Ուրիշ էլ ի՞նչ հետաքրքիր առանձնահատկություններ ունի այն
  30. IT-նախագծերի համատեղ մշակման և հոսթինգի համար նախատեսված խոշորագույն վեբ-ծառայություն Github-ը ամփոփում է տարին։ Ի՞նչ եք կարծում, որն է անցնող 2020 թվականի ամենահանրաճանաչ ծրագրավորման լեզուն
  31. Հավասարության (equality) և խիստ հավասարության (identity) օպերատորները JavaScript-ում։ ES6 ստանդարտում ստեղծվել է նոր մեթոդ՝ Object.is, որի օգնությամբ կարելի է համեմատել մեծություններն ինչպես խիստ հավասարության դեպքում: Այնուամենայնիվ որոշակի տարբերություններ կան խիստ հավասարության օպերատորի և Object.is մեթոդի միջև, կխոսենք նաև այդ մասին
  32. Հաշվարկման երկուական համակարգն ինֆորմատիկայում: Ինչպե՞ս արագ և հեշտ տասական հաշվարկման համակարգով ներկայացված թիվը վերածել երկուական համակարգով ներկայացված թվի: JavaScript-ում ինչպե՞ս ներկայացնել երկուական հաշվարկման համակարգի թվերը: Կատարենք մի հաշվարկման համակարգից անցում մյուսին՝ օգտվելով JavaScript-ում ներդրված toString մեթոդից
  33. Ստորակետ (comma) օպերատորը JavaScript-ում: Ստորակետը որպես տարանջատիչ և որպես օպերատոր
  34. Տվյալների Տրամաբանական կամ Բուլյան տիպը (logical data type or Boolean) JavaScript-ում: Նաև այն մասին, թե ինչու՞ է տվյալների այդ տիպն անվանվել Բուլյան
  35. ?? (nullish coalescing) օպերատորը JavaScript-ում: Ինչո՞վ է այն տարբերվում տրամաբանական || (OR)-ից
  36. Աշխարհում ամենատարածված խաղերից մեկի՝ ՏԵՏՐԻՍԻ ստեղծման պատմությունը: Ի՞նչ կապ ունի ՀՀ նախկին նախագահ Արմեն Սարգսյանը Տետրիսի ստեղծման հետ։ Նաև կգտնեք հղումներ, որոնց օգնությամբ կարող եք JavaScript ծրագրավորման լեզվով ստեղծել Տետրիս և խաղալ
  37. Անհրաժեշտ է ստեղծել ֆունկցիա, որը որպես արգումենտ կստանա բազմաչափ զանգված և կվերադարձնի նոր միաչափ զանգված՝ բաղկացած բազմաչափ զանգվածի բոլոր ներդրվածության մակարդակներում գտնվող էլեմենտներից
  38. if else կոնստրուկցիան (շատ հաճախ անվանում են նաև ճյուղավորման կամ պայմանի օպերատոր) գործնականում մեծամասամբ շատ հեշտ կարելի է փոխարինել switch case կոնստրուկցիայով: Ո՞ր դեպքերում է այդ փոփոխությունն արդարացված և կա՞ արդյոք արտադրողականության տարբերություն այդ երկու հիմնական ճյուղավորման կոնստրուկցիաների միջև
  39. JavaScript-ի զվարճալի տարօրինակությունները շարքից: Մաս 4
  40. Ծրագրավորողների հիմնական տիտղոսներին (Junior, Middle, Senior) ներկայացվող պահանջները
  41. Դուգլաս Քրոքֆորդն իրավմամբ համարվում է JavaScript ծրագրավորման լեզվի «ավետարանիչը»: Լինելով լեզվի կառուցողական քննադատներից մեկը՝ նա ամեն ինչ արել է JavaScript-ի բարեփոխմանն ու զարգացմանը նպաստելու, և այն հանրաճանաչ դարձնելու համար: Բավական է ասել, որ նա JSON-ի, JSLint-ի և JSMin-ի հեղինակն է: 2018 թվականին լույս տեսավ նրա «How JavaScript works» գիրքը, որը JavaScript ծրագրավորման լեզվի մասին լավագույն գրքերից մեկն է
  42. Ի՞նչ կլինի եթե for ցիկլի կառուցվածքային մասերից որևէ մեկը կամ մի քանիսը բաց թողենք: Նաև մանրամասն կդիտարկենք for ցիկլի աշխատանքային քայլերի հաջորդականությունը
  43. 🤔 Իսկ դուք գիտե՞ք, որ ծրագրավորողներն ունեն իրենց հովանավոր Սուրբը: Ո՞վ է Սուրբ Իսիդոր Սևիլյացին և ի՞նչ վաստակի համար է կաթոլիկ եկեղեցին նրան սրբադասել ու հռչակել ծրագրավորողների և համացանցից օգտվողների հովանավոր 🙂
  44. Ինկրեմենտի (++) և դեկրեմենտի (--) օպերատորները JavaScript-ում: Փորձենք հասկանալ, թե ինչ տարբերություն կա երբ այդ օպերատորներն օգտագործվում են փոփոխականից առաջ կամ հետո (Պրեֆիքս և Պոստֆիքս ձևեր)
  45. Ո՞ր ծրագրավորման լեզուներն են ամենատարածվածը։ Հանրաճանաչության գնահատման տարբեր մեթոդաբանություններ կան, որոնք երբեմն հակասական արդյունքներ են ներկայացնում, պատճառ դառնալով բուռն քննարկումների և բանավեճերի։ Այստեղ կդիտարկենք այդ մեթոդաբանություններից մի քանիսը
  46. Ի՞նչ է ալգորիթմը: Ինչու՞ է Ադիթյա Բհարգավայի «Grokking Algorithms» գիրքը համարվում ամենահանրամատչելին և լավագույնը՝ սկսնակ ծրագրավորողների համար
  47. Բինար որոնման ալգորիթմը: Ո՞րն է բինար և գծային որոնման ալգորիթմերի տարբերությունը: JavaScript ծրագրավորման լեզվի միջոցով ստեղծենք ֆունկցիա, որն օգտագործելով ԲԻՆԱՐ ՈՐՈՆՄԱՆ ԱԼԳՈՐԻԹՄԸ՝ թվերի տեսակավորված զանգվածի մեջից կգտնի և կվերադարձնի որոնվող էլեմենտի ինդեքսը
  48. Ինչպե՞ս ստուգել, արդյո՞ք տրված հատկությունն առկա է օբյեկտի մեջ: in օպերատորը և hasOwnProperty մեթոդը JavaScript-ում
  49. for in ցիկլի աշխատանքի առանձնահատկությունները: Ինչու՞ ցանկալի չէ այս ցիկլն օգտագործել զանգվածների իտերացիայի համար: Օբյեկտների մակերեսային պատճենումը for in ցիկլի օգնությամբ
  50. Օբյեկտների մակերեսային պատճենման (shallow copy) ի՞նչ եղանակներ կան: Ո՞ր եղանակն է ապահովում անթերի մակերեսային պատճենում: Նաև շատ էլեգանտ տարբերակ՝ spread օպերատորի օգնությամբ
  51. JavaScript-ի զվարճալի տարօրինակությունները շարքից՝ դատարկ օբյեկտին գումարած դատարկ զանգվածը հավասար է 0, բայց դատարկ զանգվածին գումարած դատարկ օբյեկտը՝ "[object Object]": Այնուամենայնիվ՝ {} + [] === [] + {} արտահայտությունը վերադարձնում է true: Ինչու՞ տեղափոխական հատկությունը (Commutative property) մի դեպքում չի գործում, իսկ մյուս դեպքում անխափան աշխատում է
  52. Ինչպե՞ս ստեղծել ֆունկցիա, որը որպես արգումենտներ ստանալով երկու իրարից տարբեր ամբողջ թվեր՝ կվերադարձնի պատահական ամբողջ թիվ՝ այդ միջակայքից
  53. this բանալի բառը JavaScript ծրագրավորման լեզվում: Օգտագործման առանձնահատկությունները՝ բացատրություններով: Ինչո՞վ է այն տարբերվում այլ օբյեկտ կողմնորոշված լեզուներում առկա նույնատիպ հասկացությունից
  54. Կոնստրուկտոր-ֆունկցիաներն ու օբյեկտների ստեղծումը new օպերատորի օգնությամբ: Ի՞նչ դեր է խաղում this բանալի բառը կոնստրուկտոր-ֆունկցիաների մեջ
  55. Հետաքրքիր փաստեր հանրաճանաչ Google Chrome ցանցային դիտարկիչի մասին: Ուրիշ ի՞նչ հայտնի և անհայտ դիտարկիչներ կան, որոնք նույնպես հիմնված են բաց աղբյուրային կոդով Chromium տեխնոլոգիայի վրա
  56. Ի՞նչ է լինում, երբ թեսթավորողը մտնում է փաբ 😄
  57. Ի՞նչ ֆունդամենտալ տարբերություն կա դինամիկ և ստատիկ տիպավորում ունեցող ծրագրավորման լեզուների միջև: Ինչպե՞ս չշփոթել դինամիկ տիպավորումը՝ թույլ, իսկ ստատիկը՝ ուժեղ տիպավորման հետ: Եվ ինչպե՞ս օգտագործել տիպերի խիստ ստուգումը՝ JavaScript ծրագրավորման լեզվի մեջ
  58. Հետաքրքիր փաստեր հանրաճանաչ և սիրված ցանցային դիտարկիչ Firefox-ի մասին: Ուրիշ ի՞նչ նորարարական նախագծեր են ստեղծվել Mozilla ընկերության կողմից
  59. Արժեքների ո՞ր տիպին են պատկանում ֆունկցիաները: Բարձր կարգի ֆունկցիաներն (higher-order functions) ու ծրագրավորման ֆունկցիոնալ հայեցակարգը
  60. Ֆունկցիաների շաղկապումը կոնտեքստի հետ՝ bind մեթոդի օգնությամբ
  61. Ֆունկցիայի կանչը՝ հստակորեն նշված կոնտեքստով: call և apply մեթոդների տարբերությունը
  62. Opera ցանցային դիտարկիչի ստեղծման պատմությունը: Ի՞նչու է այն տարիներ շարունակ համարվել շուկայի լիդերների ամենաարժանավոր այլընտրանքը: Ինչպես նաև Opera - Internet Explorer հակամարտության և Microsoft-ի մանր-մունր ճղճիմությունների մասին
  63. Աշխարհի ավելի քան 100 երկրներում փետրվարի 14-ին նշվում է Սուրբ Վալենտինի օրը (կամ Բոլոր սիրահարների օրը): Բայց շատերը չգիտեն, որ փետրվարի 14-ը նաև ՏՏ ոլորտի մասնագետների մասնագիտական տոնի օրն է
  64. Այս գրառման մեջ մենք կծանոթանանք, թե ինչպե՞ս ստեղծել զանգված՝ օգտագործելով ES6-ում ներդրված Array.of մեթոդը
  65. Այս գրառման մեջ մենք կանդրադառնանք ֆունկցիաների ներսում հասանելի arguments փսևդոզանգվածին: Որտե՞ղ է կարելի այն կիրառել, և ինչու՞ ժամանակակից կոդի մեջ այն ավելի ու ավելի հազվադեպ է օգտագործվում՝ փոխարինվելով rest parameter (...rest) սինթաքսով
  66. Ինչպե՞ս փսևդոզանգվածներից և իտերացվող օբյեկտներից ստանալ զանգված՝ օգտվելով ES6 ստանդարտում ներդրված Array.from մեթոդից
  67. Ծրագրի կոդի մեջ մեծ թվերն ավելի ընթեռնելի դարձնելու նպատակով JavaScript ծրագրավորման լեզվում ստեղծվել է նոր հնարավորություն, որը թույլ է տալիս կիրառել թվային տարանջատիչներ։ Թվային տարանջատիչներն օգտագործվում են Java, Python, Perl, Ruby, C# և մի շարք այլ ծրագրավորման լեզուներում, սակայն այն JavaScript-ում մշակվել է վերջերս, և ընդգրկվել է ECMAScript 2021 ստանդարտում
  68. Ինպե՞ս տեքստի մեջ որոնել և փոխել բոլոր միանման բառերը՝ օգտվելով String.prototype-ի replaceAll մեթոդից
  69. 2021 թվ․ մայիսի 5֊ին պաշտոնապես թողարկվեց հայտնի CSS ֆրեյմվորք Bootstrap-ի 5֊րդ ստաբիլ տարբերակը, որում վերջնականապես հրաժարվեցին JavaScript-ի լեգենդար jQuery գրադարանի օգտագործումից՝ հօգուտ «վանիլային» JavaScript-ի
  70. Ֆունկցիաների ստեղծման համար JavaScript ծրագրավորման լեզվում կան մի քանի եղանակներ, որոնցից մեկը՝ Function կոնստրուկտորի օգնությամբ, օբյեկտիվ պատճառներով հազվադեպ է օգտագործվում
  71. Մի շարք հանրաճանաչ ծրագրավորման լեզուներում (օրինակ՝ Java, Python, Ruby) գոյություն ունեն կոդի կատարումը ժամանակավորապես արգելակող հատուկ ֆունկցիաներ/մեթոդներ։ (Սովորաբար այդպիսի ֆունկցիան/մեթոդը անվանում են sleep): JavaScript-ում այդպիսի ներդրված ֆունկցիա դեռևս չկա, սակայն հնարավոր է ստեղծել՝ ընդ որում բազմաթիվ տարբեր եղանակներով
  72. Ստեկ տվյալների կառուցվածքը: JavaScript ծրագրավորման լեզվի օգնությամբ պարզագույն ստեկի ստեղծումը
  73. Ի՞նչ է ինկապսուլյացիան։ Մասնավոր (private) հատկություններն ու մեթոդները JavaScript ծրագրավորման լեզվում։
  74. Տրամաբանական վերագրման օպերատորները JavaScript-ում (Պաշտոնապես ընդգրկվել է ECMAScript 2021 կամ ինչպես հաճախ կարճ ասում են` ES12 ստանդարտ՝ 2021 թվ․ հունիս ամսին)
  75. JavaScript-ում գոյություն ունի Date ներդրված օբյեկտը, որի now ստատիկ մեթոդի կանչը վերադարձնում է 1970 թվականի հունվարի մեկի կեսգիշերից մինչև մեթոդի կանչի ժամանակն անցած միլիվայրկյանների քանակը: Ի՞նչ է Unix time համակարգը, և ինչու՞ է որպես հաշվարկման համակարգի սկիզբ ընդունված 1970 թվականի հունվարի մեկի կեսգիշերը
  76. 2022 թվականի հունիսին հաստատվեց ECMAScript 2022-ի նոր ստանդարտը, որում կան մի քանի հետաքրքիր նորամուծություններ։ Դիտարկենք մի փոքրիկ նորամուծություն, որը թույլ է տալիս օգտագործել բացասական ինդեքս և ստանալ զանգվածի վերջին էլեմենտը ավելի կարճ ու հեշտ կարդացվող սինթաքսով