# Методҳои Чоп дар SomonScript - Console Methods Guide (Тоҷикӣ)

Раҳнамои пӯршуморе барои ҳамаи методҳои чоп дар SomonScript.

## Ҷадвали Шноси Тез

| JavaScript                 | SomonScript          | Таҳримон     | Мақсад                         |
| -------------------------- | -------------------- | ------------ | ------------------------------ |
| `console.log()`            | `чоп.сабт()`         | Сабткунӣ     | Натиҷаҳои оддӣ ба консол       |
| `console.error()`          | `чоп.хато()`         | Хато         | Пайғомҳои хатоҳо               |
| `console.warn()`           | `чоп.огоҳӣ()`        | Огоҳӣ        | Пайғомҳои огоҳӣ                |
| `console.info()`           | `чоп.маълумот()`     | Маълумот     | Пайғомҳои иттилоотӣ            |
| `console.debug()`          | `чоп.исфти()`        | Исфти        | Маълумоти исфти                |
| `console.assert()`         | `чоп.тасдиқ()`       | Тасдиқ       | Санҷиши тасдиқ                 |
| `console.count()`          | `чоп.қайд()`         | Ҳисоб        | Ҳисобкунии такрорҳо            |
| `console.countReset()`     | `чоп.қайд_асл()`     | Ҳисоб асл    | Аз нав сохтани ҳисобкунак      |
| `console.time()`           | `чоп.вақт()`         | Вақт         | Оғоз кардани шамолаи вақт      |
| `console.timeLog()`        | `чоп.вақт_сабт()`    | Вақт сабт    | Сабткунии вақти гузашта        |
| `console.timeEnd()`        | `чоп.вақт_охир()`    | Вақт охир    | Ихтитом дадани шамолаи вақт    |
| `console.table()`          | `чоп.ҷадвал()`       | Ҷадвал       | Натиҷаҳои дар шакли ҷадвал     |
| `console.dir()`            | `чоп.феҳрист()`      | Феҳрист      | Номи сифатҳои объект           |
| `console.dirxml()`         | `чоп.xml_феҳрист()`  | XML феҳрист  | Структураи XML/DOM             |
| `console.trace()`          | `чоп.пайҷо()`        | Пайҷо        | Пайҷои стакк                   |
| `console.clear()`          | `чоп.полиз()`        | Полиз        | Сопиши консол                  |
| `console.group()`          | `чоп.гуруҳ()`        | Гуруҳ        | Оғоз кардани гуруҳи натиҷаҳо   |
| `console.groupEnd()`       | `чоп.гуруҳ_охир()`   | Гуруҳ охир   | Ихтитом дадани гуруҳи натиҷаҳо |
| `console.groupCollapsed()` | `чоп.гуруҳ_пӯшида()` | Гуруҳ пӯшида | Гуруҳи пӯшидаи натиҷаҳо        |

---

## Мисалҳои Аслӣ

### 1. **Натиҷаҳои Асосӣ (Basic Output)**

```somonscript
// Сабткунии оддӣ
чоп.сабт('Салом!');

// Сабткунӣ бо аргументҳои бисёр
чоп.сабт('Номи:', 'Қаҳҳор', 'Синну:', 25);

// Сабткунии объект
тағйирёбанда шахс = { номи: 'Рефина', шахр: 'Душанбе' };
чоп.сабт('Шахс:', шахс);
```

**Натиҷа:**

```
Салом!
Номи: Қаҳҳор Синну: 25
Шахс: { номи: 'Рефина', шахр: 'Душанбе' }
```

---

### 2. **Роҳикомории Хатоҳо (Error Handling)**

```somonscript
чоп.хато('Хатои ҷанбии-ҷадам!');
чоп.хато('Рақами хато:', 500);
```

**Натиҷа (бо рангҳои қуҳра/бурҷаста):**

```
Хатои ҷанбії-ҷадам!
Рақами хато: 500
```

---

### 3. **Огоҳиҳо (Warnings)**

```somonscript
чоп.огоҳӣ('Функсияи куҳна!');
чоп.огоҳӣ('Истифода набарад');
```

**Натиҷа (бо рангҳои сабз/бурҷаста):**

```
Функсияи куҳна!
Истифода набарад
```

---

### 4. **Маълумот (Information)**

```somonscript
чоп.маълумот('Барнома шурӯъ шуд');
чоп.маълумот('Версия: 1.0.0');
```

---

### 5. **Маълумоти Исфти (Debug Information)**

```somonscript
тағйирёбанда x = 10;
тағйирёбанда y = 20;
чоп.исфти('Қиматҳо:', { x, y });
```

---

### 6. **Тасдиқҳо (Assertions)**

```somonscript
чоп.тасдиқ(2 + 2 === 4, 'Математика дуруст');
чоп.тасдиқ(5 > 10, 'Ин нодуруст аст');
```

**Натиҷа:**

```
// Тасдиқи аввал кӯшиш шуд (натиҷа нест)
// Тасдиқи дуюм шикаст:
Assertion failed: Ин нодуруст аст
```

---

### 7. **Ҳисобкунӣ (Counting)**

```somonscript
функсия функсияи_фиалӣ() {
  чоп.ҳисоб('вызов');
}

функсияи_фиалӣ();  // вызов: 1
функсияи_фиалӣ();  // вызов: 2
функсияи_фиалӣ();  // вызов: 3

чоп.қайд_асл('вызов');  // Аз нав сохтан
```

---

### 8. **Ҳисобкунии Вақт (Timing)**

```somonscript
чоп.вақт('ҳисоб');

барои (тағйирёбанда i = 0; i < 1000000; i++) {
  // Амалиётҳо
}

чоп.вақт_охир('ҳисоб');
// Натиҷа: ҳисоб: 123.45ms

// Ё бо сабткунии миёнаҳои вақт
чоп.вақт('эҳсоскунӣ');
чоп.вақт_сабт('эҳсоскунӣ', 'Марҳалаи 1 иҷро');
// Амалиётҳои зиёда
чоп.вақт_охир('эҳсоскунӣ');
```

---

### 9. **Намойиши Ҷадвал (Table Display)**

```somonscript
тағйирёбанда ҳотими = [
  { номи: 'Қаҳҳор', синну: 25, шахр: 'Душанбе' },
  { номи: 'Рефина', синну: 23, шахр: 'Хуҷанд' },
  { номи: 'Фоҳима', синну: 27, шахр: 'Қургонтеппа' }
];

чоп.ҷадвал(ҳотими);

// Намойиши сутунҳои мухассас
чоп.ҷадвал(ҳотими, ['номи', 'синну']);
```

---

### 10. **Тафқиқи Объектҳо (Object Inspection)**

```somonscript
тағйирёбанда объект = {
  x: 10,
  y: 20,
  z: { а: 1, б: 2 }
};

// Номи ҳамаи сифатҳо
чоп.феҳрист(объект);

// Барои элементҳои DOM (агар дастгирӣ шуда бошад)
// чоп.xml_феҳрист(document.body);
```

---

### 11. **Пайҷои Стакк (Stack Trace)**

```somonscript
функсия сатҳи_аввал() {
  сатҳи_дуввум();
}

функсия сатҳи_дуввум() {
  сатҳи_сеюм();
}

функсия сатҳи_сеюм() {
  чоп.пайҷо('Стакк трас:');
}

сатҳи_аввал();
```

---

### 12. **Гуруҳбандии Натиҷаҳо (Grouping Output)**

```somonscript
чоп.гуруҳ('Фасли 1');
чоп.сабт('Даромади 1.1');
чоп.сабт('Даромади 1.2');
чоп.гуруҳ_охир();

чоп.гуруҳ_пӯшида('Фасли 2 (қалаб)');
чоп.сабт('Даромади 2.1');
чоп.сабт('Даромади 2.2');
чоп.гуруҳ_охир();

чоп.сабт('Ҷалали муаллиф');
```

---

### 13. **Полизи Консол (Clearing Console)**

```somonscript
чоп.сабт('Матни аввал');
чоп.сабт('Матни дуввум');

чоп.полиз();  // Сопиш кардани ҳамаи натиҷаҳо

чоп.сабт('Матни навин (баъди пока)');
```

---

## Мисоли Мукаммал (Complete Example)

```somonscript
функсия раҳгирӣ_веб_сохӣ(URL) {
  чоп.гуруҳ('Раҳгирӣ: ' + URL);
  чоп.вақт('раҳгирӣ');

  // Сабткунии маълумот
  чоп.маълумот('URL: ' + URL);
  чоп.маълумот('Модаб: GET');

  // Дархостҳои нуқили
  агар (URL) {
    чоп.тасдиқ(URL.дарозӣ > 0, 'URL муаллиқ');
  } вагарна {
    чоп.хато('URL беморубата');
  }

  // Исфти қиматҳо
  тағйирёбанда натиҷа = {
    статус: 200,
    вақти_ҷавоб: '145ms',
    андомазаҳо: 1024
  };

  чоп.ҷадвал(натиҷа);
  чоп.вақт_охир('раҳгирӣ');

  чоп.гуруҳ_охир();
}

раҳгирӣ_веб_сохӣ('https://example.com');
```

---

## Шарҳҳо

- Аксари методҳо натиҷаҳоро ба **stdout** фиристанд (натиҷаҳои оддӣ)
- `console.error()` одатан натиҷаҳоро ба **stderr** фиристад (ҷараи хато)
- Методҳо ба монанди `time()`, `count()` як ҳолати дохилиро нигоҳ дорида
  мондаанд
- Натиҷаҳои гуруҳшуда воқъияти қисм дорад
- Форматҳои ҷадвал аз қобилиятҳои машинаи JavaScript вобаста аст

## Инчунин нигаред

- [API Console JavaScript](https://developer.mozilla.org/en-US/docs/Web/API/Console)
- [Документи Console Node.js](https://nodejs.org/api/console.html)
- [Мисалҳои SomonScript](../examples)
