შესავალი
ქართულსკრიპტი არის ენა რომელიც კომპილირდება ჯავასკრიპტში. იგი აწყობილია CoffeeScript-ის კომპილერის ბაზაზე და აქვს ყველა CoffeScript -ის შესაძლებლობა, მხოლოდ keyword-ები არის ქართული. რადგანაც იგი CoffeeScript ბაზაზეა, CoffeeScript კოდიც ვალიდურია.
Node.Js
იმისთვის რომ Node.js-ზე გავუშვათ/დავაკომპილიროთ ქართულსკრიპტის კოდი საჭიროა ჯერ დავაყენოთ ქართულსკრიპტი npm-დან შემდეგი ბრძანების გაშვებით ტერმინალში npm install -g qartulskripti. შემდეგ შეგვიძლია გავუშვათ ქართულსკრიპტის REPL - qartulskripti ან დავაკომპილიროთ რაიმე ქართულსკრიპტის ფაილი ჯავასკრიპტში qartulskripti -c ., ეს დააკომპილირებს ყველა ქართულსკრიპტის ფაილს ჯავასკრიპტში.Browser
ქართულსკრიპტი როგორც CoffeeScript საშუალებას იძლევა ბრაუზერში გამოვიყენოთ. თუცმა მისი გამოყენება რეკომენდირებული არ არის Production-ში ^_^. იმისთვის რომ კოდმა ბრაუზერში იმუშაოს საჭიროა საიტზე ჩავტვირთოთ ქართულსკრიპტი, რომლის წყაროც ბრაუზერისთვის შეგიძლიათ გადმოწეროთ აქედან (მინიფიცირებულია). კოდის დასაწერად კი script ტეგს უნდა გავუწეროთ ტიპი 'text/qartulskripti': <script type="text/qartulskripti" src="somefile.qs"></script>
მიმოხილვა
ქართულსკრიპტის კოდის მაგალითირაოდენობა = 20
გამარჯობა = 'გამარჯობა '
დავბეჭდოთ = კი
ბევრი_გამარჯობა = '';
ბევრი_გამარჯობა += გამარჯობა სანამ რაოდენობა-- მეტია 0ზე
დაბეჭდე ბევრი_გამარჯობა
წლები =
  ნინო : 1991
  გიორგი : 1992
  თამუნა : 1990
  ირაკლი : 1992
როცა სახელი, წელი ეკუთვნის წლები
 დაბეჭდე "#{სახელი} დაიბადა #{წელი} წელს"
როცა რიცხვი შედის [1..10] იზრდება 2ით
  დაბეჭდე რიცხვი
სია = Object.keys წლები
სახელი = 'გიორგი'
დაბეჭდე "სახელი '#{სახელი}' შედის სიაში" თუ სახელი შედის სია შიvar ბევრი_გამარჯობა, გამარჯობა, დავბეჭდოთ, რაოდენობა, რიცხვი, სახელი, სია, წელი, წლები, _i,
  __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
რაოდენობა = 20;
გამარჯობა = 'გამარჯობა ';
დავბეჭდოთ = true;
ბევრი_გამარჯობა = '';
while (რაოდენობა-- > 0) {
  ბევრი_გამარჯობა += გამარჯობა;
}
დაბეჭდე(ბევრი_გამარჯობა);
წლები = {
  ნინო: 1991,
  გიორგი: 1992,
  თამუნა: 1990,
  ირაკლი: 1992
};
for (სახელი in წლები) {
  წელი = წლები[სახელი];
  დაბეჭდე("" + სახელი + " დაიბადა " + წელი + " წელს");
}
for (რიცხვი = _i = 1; _i <= 10; რიცხვი = _i += 2) {
  დაბეჭდე(რიცხვი);
}
სია = Object.keys(წლები);
სახელი = 'გიორგი';
if (__indexOf.call(სია, სახელი) >= 0) {
  დაბეჭდე("სახელი '" + სახელი + "' შედის სიაში");
}
Javascript ექვივალენტები
| ქართულსკრიპტი | CoffeeScript | JavaScript | 
|---|---|---|
| არის | is | === | 
| არარის | isnt | !== | 
| არ | not | ! | 
| და | and | && | 
| ან | or | || | 
| კი | true, yes, on | true | 
| არა | false, no, off | false | 
| მეტია | > | > | 
| ნაკლებია | < | < | 
| @, ეს | @, this | this | 
| ეკუთვნის | of | in | 
| შედის | in | --- | 
| როცა | for | --- | 
| სანამ | while | --- | 
| მანამ | until | --- | 
| შეწყვიტე | break | break | 
| გამოტოვე | continue | continue | 
| იზრდება | by | --- | 
| თუ | if | if | 
| მაშინ | then | --- | 
| თუარადა | else | else | 
| დააბრუნე | return | return | 
| წაშალე | delete | delete | 
| ახალი | new | new | 
| ტიპი | typeof | typeof | 
| განუსაზღვრელი | undefined | undefined | 
| შეამოწმე | switch | switch | 
| როდესაც | when | case | 
| ცადე | try | try | 
| დაიჭირე | catch | catch | 
| საბოლოოდ | finally | finally | 
| კლასი | class | --- | 
| მემკვიდრეა | extends | --- | 
| წინაპარი | super | --- | 
| ით, ზე, ში, ს | * WHITESPACE | * WHITESPACE | 
პირობითი ოპერატორები
რადგან == ხშირად არასასურველ შედარებებს აკეთებს ამიტომ იგი ავტომატურად კომპილირდება ===. ალტერნატიულად შეიძლება გამოიყენოთ არის. უარყოფისთვის ! მაგივრად შეიძლება გამოვიყენოთ არ და != მაგივრად არარის, რომელიც დაკომპილირდება !==-ში.მაგალითები:
#მარტივი პირობა
თუ 0 არის არა
  დაბეჭდე "0 არის არა"
თუარადა
  დაბეჭდე "0 არ არის არა"
რიცხვი = 14
თუ რიცხვი ნაკლებია 20ზე ან რიცხვი მეტია 50ზე
  დაბეჭდე რიცხვი
#ე.წ. inline პირობა
თუ 0 არის '3' მაშინ დაბეჭდე '3 არის "3"' თუარადა დაბეჭდე '3 არ არის "3"'
პასუხი =
  სტატუსი : 200
#მინიჭება პირობის შესრულების შემთხვევაში
მესიჯი = 'მოთხოვნა წარმატებით დასრულდა' თუ პასუხი.სტატუსი არის 200
# ? :
მესიჯი = თუ პასუხი.სტატუსი არის 200 მაშინ 'მოთხოვნა წარმატებით დასრულდა' თუარადა 'მოთხოვნა წარუმატებლად დასრულდა'
# შეამოწმე თუ არსებობს key
თუ პასუხი.სტატუსი?
  დაბეჭდე 'სტატუსი გვაქვს და სტატუსია #{პასუხი.სტატუსი}'
# შეამოწმე თუ არსებობს, მიანიჭე რამე ნაგულისხმები მნიშვნელობა
სტატუსი = პასუხი.სტატუსი ? 500
მესიჯი = რაიმე_მესიჯი ? '...'var მესიჯი, პასუხი, რიცხვი, სტატუსი, _ref;
if (0 === false) {
  დაბეჭდე("0 არის არა");
} else {
  დაბეჭდე("0 არ არის არა");
}
რიცხვი = 14;
if (რიცხვი < 20 || რიცხვი > 50) {
  დაბეჭდე(რიცხვი);
}
if (0 === '3') {
  დაბეჭდე('3 არის "3"');
} else {
  დაბეჭდე('3 არ არის "3"');
}
პასუხი = {
  სტატუსი: 200
};
if (პასუხი.სტატუსი === 200) {
  მესიჯი = 'მოთხოვნა წარმატებით დასრულდა';
}
მესიჯი = პასუხი.სტატუსი === 200 ? 'მოთხოვნა წარმატებით დასრულდა' : 'მოთხოვნა წარუმატებლად დასრულდა';
if (პასუხი.სტატუსი != null) {
  დაბეჭდე('სტატუსი გვაქვს და სტატუსია #{პასუხი.სტატუსი}');
}
სტატუსი = (_ref = პასუხი.სტატუსი) != null ? _ref : 500;
მესიჯი = typeof რაიმე_მესიჯი !== "undefined" && რაიმე_მესიჯი !== null ? რაიმე_მესიჯი : '...';