Skip to content

Commit

Permalink
feat: introduction/what-is-javascript/variable (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
KostaD02 authored Nov 12, 2023
1 parent 5515ad8 commit 848372d
Show file tree
Hide file tree
Showing 3 changed files with 187 additions and 0 deletions.
29 changes: 29 additions & 0 deletions src/content/guides/javascript/introduction.md
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 სრულიად სხვა პროგრამირების ენა არის.
77 changes: 77 additions & 0 deletions src/content/guides/javascript/variable.md
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`
Loading

0 comments on commit 848372d

Please sign in to comment.