-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: introduction/what-is-javascript/variable (#1)
- Loading branch information
Showing
3 changed files
with
187 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
title: "JavaScript-ის შესავალი" | ||
description: "JavaScript მცირედი მიმოხილვა" | ||
keywords: "js, javascript, ჯავასკრიპტი, jit, first-class, node.js, apache couchdb, adobe acrobat, single-threaded, oop, framework, library, ecmascript" | ||
headings: | ||
- რა არის JavaScript | ||
- სად გამოიყენება JavaScript | ||
- JavaScript-ის სტანდარტი | ||
--- | ||
|
||
## რა არის JavaScript | ||
|
||
JavaScript (JS) არის ინტერპრეტირებადი ან [just-in-time](https://en.wikipedia.org/wiki/Just-in-time_compilation) (JIT) კომპილირებადი პროგრამული ენა, | ||
რომელიც არის [first-class](./references/javascript/first-class) ფუნქციებით სავსე. JavaScript ცნობილია, როგორც ვებ-გვერდებისთვის სკრიპტულიენა, | ||
ასევე ხშირად გამოიყენება როგორც არა ვებ-გვერდისთვის, არამედ [Node.js](./references/javascript/node.js), [Apache CouchDB](https://couchdb.apache.org/) და [Adobe Acrobat](https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/). ჯავასკრიპტი არის ერთ ნაკადიანი ([single-threaded](./references/javascript/single-threaded)), | ||
დინამიური ენა , რომელსაც მხარდაჭერა გააჩნია ობიეტზე-ორიენტირება([OOP](./references/javascript/oop)) და ასევე ფუნქციონალური პროგრამირების სტილი. | ||
ზოგადად ნებისმიერ ენაზე დაწერილი პროგრამა შესრულდება ხდება ორ ვარიანტად: კომპილირებად ან ინტერპრეტირებად. კომპილაცია არის პროცესი, | ||
როდესაც პროგრამული კოდი სხვა პროგრამის სპეციალური ინსტრუმენტის ე.წ კომპილატორის დახმარებით გადაიწერება პროცესორისთვის და სრულდება. | ||
ინტერპრეტაცია არის პროცესი , როდესაც პროგრამული კოდი გადაეცემა ინტერპრეტატორს, რომელიც კოდში მითითებულ ინსტრუქციებს ასრულებს კომპილაციის გარეშე. | ||
JavasScript არის პროგრამირების ინტერპრეტატორული ენა, მისი კოდს არ სჭირდება კომპილაცია, ის სერვერზე გაშვებისას ავტომატურად სრულდება. | ||
|
||
## სად გამოიყენება JavaScript | ||
|
||
JavaScript შესაძლებელია გამოვიყენოთ, როგორც კლიენტის მხარეს ასევე სერვერის მხარესაც. კლიენტის მხარეს სხვადასხვა ტიპის ინფორმაციის დამუშავებისათვის შეგვიძლია გამოვიყენოთ [DOM](./referenecs/javascript/dom), ასევე [Web APIs](./references/javascript/web-api) და სერვერთან დაკავშირებისთვის [API](./reference/javascript/api). JavaScript-ზე დაყრდნობით შეიქმნა, არაერთი ბიბლიოთეკა([Library](./references/javascript/library)) და ფრეიმვორკი([Framework](./references/javascript/framework)), რაც დეველოპერებს ეხმარება სხვადასხვა ტიპის ვებ-გვერდების აწყობაში. სერვერის მხარეს Node.js დაყრდნობით, შესაძლებელი გახდა სხვადასხვა ტიპის API სერვისების აწყობა, რაც შემდგომ ისევ გამოიყენება კლიენტის მხარეს. | ||
|
||
## JavaScript-ის სტანდარტი | ||
|
||
JavaScript-ის სტანდარტი არის [ECMAScript Language Specification](https://tc39.es/ecma262/) და [ECMAScript Internationalization API specification](https://tc39.es/ecma402/). | ||
ხშირია შემთხვევა, როცა დამწყები დეველოპერი JavaScript მოიხსენიებს, როგორც [Java](<https://en.wikipedia.org/wiki/Java_(programming_language)>). Java სრულიად სხვა პროგრამირების ენა არის. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
--- | ||
title: "ცვლადები JavaScript-ში" | ||
description: "let vs var vs const" | ||
keywords: "js, javascript, ჯავასკრიპტი, var, let, const, global-scope, cvladis saxeli, ცვლადის სახელი, ცვლადის სახელის სტილი, ცვლადი, ცვლადები" | ||
headings: | ||
- var | ||
- let | ||
- const | ||
- ინიციალიზება | ||
- ცვლადის სახელი | ||
- ცვლადის სახელის სტილი | ||
--- | ||
|
||
ცვლადი გვჭირდება გარკვეული ტიპის ინფორმაციის შესანახად, რომელსაც შემდგომ მივანიჭებთ მნიშვნელობას. | ||
არსებობს ისეთი ინიციალიზების ტიპები, რომლებიც გვაძლევს საშუალებას მინიჭებულ ცვლადს შევუცვალოთ მნიშვნელობა და ასევე გვაქვს ისეთი ინიციალიზების ტიპი, რომელიც ამის | ||
უფლებას არ გვაძლევს. ინიციალიზების რამოდენიმე ტიპი არსებობს: var, let, const. | ||
|
||
## var | ||
|
||
var-ით ინიციალიზების შემთხვევაში შესაძლოა აღიწეროს ცვლადი, რომელიც განსაზღვრული იქნება ფუნქციაში ან გლობალურად ([global-scope](./references/javascript/global-scope)), ცვლადის მნიშვნელობის შეცვლა შესაძლებელია ნებისმიერ დროს. მსგავს ტიპად გამოცხადებული ცვლადი გადის [hoistings](./references/javascript/hoisting). | ||
|
||
## let | ||
|
||
let-ით ინიციალიზების შემთხვევაში შესაძლოა აღიწეროს ცვლადი, რომელიც განსაზღვრული ინქება ფუნქციაში ან ლოკალურ ბლოკში ([block-scope](./references/javascript/block-scope)), ცვლადის მნიშვნელობის შეცვლა შესაძლებელია ნებისმიერ დროს. მსგავს ტიპად გამოცხადებული ცვლადი არ გადის. | ||
|
||
## const | ||
|
||
const-ით ინიციალიზება საკმაოდ გავს let ინიციალიზების ტიპს, const იც ლოკალურ ბლოკში არის მოთავსებული, თუმცა არის ერთი განსხვავება, მისი აღწერის შემდგომ შეუძლებელია მისი გადაკეთება (გამონაკლისი შემთხვევა არსებობს მასივთან და ობიექტთან მიმართებაში, შესაძლებელია, რომ განვანახლოთ ელემენტები ან უბრალოდ ამოვიღოთ ელემენტები, მაგრამ ცვლადი ისევ დარჩება მასივად ან ობიექტად). | ||
|
||
## ინიციალიზება | ||
|
||
ცვლადის აღსაწერად საჭიროა : `ინიციალიზების_ტიპი` `ცვლადის_სახელი` = `მნიშვნელობა`; | ||
|
||
მაგალითები: | ||
|
||
```js | ||
var projectName = "EverREST"; // Camelcase | ||
let organization_name = "Educata"; // Snakecase | ||
const DocumentationProject = "Iswavle"; // Pascalcase | ||
``` | ||
|
||
## ცვლადის სახელი | ||
|
||
ცვლადის სახელი უნდა ასახავდეს ცვლადის მნიშვნელობას. პრაქტიკაში უმჯობესია ინგლისური ცვლადის სახელები. ცვლადის სახელი უნდა ასახავდეს ცვლადის მნიშვნელობას. ცვლადის სახელი უმჯობესია შედგებოდეს, რამოდენიმე სიმბოლოსაგან, თუ [ლუპი](./references/javascript/loop) არის მაშინ მისაღებია i, j და ა.შ. [მასივი](./references/javascript/array)-ს სახელი უმჯობესია ჩაიწეროს მრავლობითში, მაგალითად: `students` და არა `student`. | ||
|
||
## ცვლადის სახელის სტილი | ||
|
||
ცვლადის სახელის აღწერის დროს შესაძლებელია სხვადასხვა სტილის გამოყენება. ხშირად გამოყენებადი სტილები: | ||
|
||
- Camel case | ||
- პირველი სიმბოლო პატარა ასოთი, მის შემდგომ არსებული ყველა სიტყვა იწყება დიდი ასოთი. | ||
- კარგია მარტივი ტიპის ცვლადებისათვის | ||
- მაგალითი: `userName` | ||
- Camel case with prefixes | ||
- იგივე Camel case, უბრალოდ პრეფიქსი აქვს, ცვლადის ტიპიდან გამომდინარე, თუ არის ბულეანი მაშინ იწყება `is` თუ რაიმე მნიშვნელობას აბრუნებს ფუნქცია სახელი იწყება `get` და მსგავსად. | ||
- კარგია [ფუნქცი](./references/javascript/function)-ის სახელებისათვის | ||
- მაგალითი: `isUserAuthed` | `getRandomNumber` | ||
- Snake case | ||
- ყოველი სიტყვა არის პატარა ასოებით დაწერილი, სიტყვებს შორის დაშორებისთვის კი გამოიყენება `_`. | ||
- კარგია მარტივი ტიპის ცვლადებისათვის | ||
- მაგალითი: `user_name` | ||
- Upper snake case | ||
- ყოველი სიტყვა არის დიდი ასოთი, სიტყვებს შორის დაშორებისთვის კი გამოიყენება `_`. | ||
- კარგია მუდმივი(const) ცვლადის მნიშვნელობებისთვის, რომელიც არ იცვლება. | ||
- მაგალითი: `MIN_VALUE` | ||
- Pascal case | ||
- ყოველი სიტყვა იწყება დიდი ასოთი. | ||
- კარგია [კლასი](./referenes/javascript/class)-ს, [ინტერფეისი](./references/typesript/interface)-ს და [ენამი](./references/typescript/enum)-ს სახელებისათვის. | ||
- მაგალითი: `UserName` | ||
- Kebab case | ||
- ყოველი სიტყვა არის პატარა ასოებით დაწერილი, სიტყვებს შორის დაშორებისთვის კი გამოიყენება `-`. | ||
- კარგია URL-ს სახელისათვის და CSS კლასის სახელისათვის. | ||
- მაგალითი: `path/display-posts` | `profile-avatar` | ||
- Hungarian Notation | ||
- ცვლადის სახელი იწყება ცვლადის ტიპით, შემდგომ კი გრძელდება, როგორც Camel case. | ||
- ადრე გამოიყენებოდა ძველ პროგრამულ ენებში, რადგან არ იყო მრავალფეროვნება ტიპებში თუმცა დღეისათვის იშვიათად. | ||
- მაგალითი: `strName` | `intCount` |
Oops, something went wrong.