# Задания по базовому синтаксису

## Порядок оформления

* Создать репозиторий с именем shed-js-core-task-02 на github.com.
* В репозитории создать файлы `index.html` и `index.js` и папку `js` на одном уровне.&#x20;
* В папке `js` создавать отдельный файл с именем по номеру задачи.&#x20;
* Все файлы из папки `js` импортировать в корневой файл index.js.
* Файл index.js подключить через тег `script` в файл index.html.

1. ### переменные, объявление и инициализация

   <https://youtu.be/PPOz4Xp1rOM>

   ### примитивы

   <https://youtu.be/yQ5esxiMCKE>

   #### явное приведение к строке

   <https://youtu.be/q-ftaOgUmuw>

   #### явное приведение к числу

   <https://youtu.be/Oes-x8Ebb6I>

   #### явное приведение к булю

   <https://youtu.be/jv566GdyUrM> \
   Пересмотреть, прописать руками все и мне ссылку на репозиторий с кодом
2. Напиши условные выражения с помощью констуркции if...else, которая выводит в консоль браузера сообщение \`Условие выполнено!\`, если условие приводится к true и \`Условие не выполнено!\` в противном случае.\
   Указывай в условиях следующие выражения:\
   a) 1 == true\
   b) 0 == false\
   c) "" == true\
   d) "\_" == false\
   e) NaN == false\
   \*объясни почему в каждом из выражений условие выполняется или не выполняется.
3. Перепиши все созданные условные выражения из задания 2 с помощью тернарного оператора.
4. Объяви две переменные хранящие название и цену товара: `name` и `price`. \
   Присвой переменным следующие характеристики товара (сразу при объявлении): название: `Генератор защитного поля` \
   цена: `1000` \
   Используя шаблонную строку и интерполяцию, выведи в консоль информацию о товаре, чтобы получилось: \
   `'Выбран «Генератор защитного поля», цена за штуку 1000 кредитов'`. \
   Присвой товару новую цену - 2000 \
   Используя шаблонную строку и интерполяцию, выведи в консоль информацию о товаре, чтобы получилось: \
   `'Выбран «Генератор защитного поля», цена за штуку 2000 кредитов'.`
5. &#x20;Объяви две переменные хранящие имя пользователя и сообщение приветствия: `userName` и `greeting`\
   Переменная с именем пользователя должна принимать данные через окно ввода. Используя шаблонную строку и интерполяцию выведи в консоль информацию товаре, получится: \
   `'Имя пользователя, приветствие'`
6. Объяви три переменные с именами `var1`, `var2` и `var3` соответственно.\
   Присвой им значения: `1`, `0`, `true` \
   Выведи в консоль результаты сравнения: \
   `var1 > var2` \
   `var1 == var3`\
   `var1 === var3`\
   `var1 != var3`\
   `var2 != var3`\
   `var1 > var2 == var3`\
   `var1 > var2 > var3`\
   Напиши в комментарии после команды console.log, \
   `ответ из консоли // объясни почему получаются такие ответы`
7. Объяви две переменные `alfa` и `beta` со значениями `0.2` и `0.4`\
   Запиши результат суммы этих переменных так, чтобы получилось 0.6 в переменную `result`\
   Выведи результат в консоль.
8. Объяви переменную `tetra`\
   Присвой ей значения: `12px`, `13.34em`.\
   Выведи результат в консоль и укажи результат в комментарий после console.log.
9. Выведи в консоль наибольшее и наименьшее число из указанных \
   `(2, 34, 99, 3, 22, 36, 733, 18)`
10. Объяви переменную `random`.\
    Пусть она принимает рандомное целое число от `3` до `19` включительно.\
    Выведи результат в консоль.
11. Напиши скрипт проверки количества товаров на складе. \
    Есть переменные `total` (количество товаров на складе) и \
    `ordered` (единиц товара в заказе). \
    Сравни эти значения и по результатам выведи: \
    Если в заказе указано число, превышающее количество товаров на складе, то выведи сообщение `"На складе недостаточно товаров!"`. \
    В другом случае выводи сообщение `"Заказ оформлен, с вами свяжется менеджер"`. \
    Проверь работоспособность кода с разными значениями переменной `ordered`, например `20`, `80` и `130`. \
    `const total = 100; const ordered = 50;`
12. Напиши скрипт имитирующий авторизацию администратора в панели управления. \
    Есть переменная `message` в которую будет записано сообщение о результате. \
    При загрузке страницы у посетителя запрашивается пароль через `prompt()`: \
    \- Если нажали Cancel, записать в message строку `'Отменено пользователем!'` \
    \- В другом случае, если введен пароль который совпадает со значением константы `ADMIN_PASSWORD`, записать в message строку `'Добро пожаловать!`'\
    \-  В противном случае, то есть если ни одно из предыдущих условий не выполнилось, записать в `message` строку `'Доступ запрещен, неверный пароль!'.` \
    После всех проверок вывести в `alert` значение переменной `message`. \
    `const ADMIN_PASSWORD = 'jqueryismyjam'; let message;`
13. На счету пользователя есть `23580` кредитов, значение хранится в переменной `credits` (создай и присвой). \
    Пользователь решает купить ремонтных дроидов, которые стоят по `3000` кредитов за штуку. \
    Цена одного дроида хранится в переменной `pricePerDroid` (создай и присвой). \
    При посещении страницы, используя `prompt`, необходимо спросить количество дроидов которые пользователь хочет купить и сохранить в переменную. \
    Напиши скрипт который: \
    \- Если в `prompt` была нажата кнопка `Cancel`, выводит в консоль сообщение `'Отменено пользователем!'`. \
    \- В противном случае, рассчитывает общую цену заказа и сохраняет в переменной `totalPrice`. \
    \- Проверь, сможет ли пользователь оплатить заказ, если сумма к оплате превышает количество кредитов на счету, выводи в консоль сообщение `'Недостаточно средств на счету!',`\
    \- в противном случае необходимо посчитать остаток кредитов на счету и вывести сообщение `'Вы купили [число] дроидов, на счету осталось [число] кредитов.'.`
14. Пользователь может оформить доставку товара к себе в страну, указав ее при посещении страницы в prompt. \
    Учти, пользователь может ввести имя страны не только буквами нижнего регистра, а к примеру 'кИтАЙ'. \
    Напиши скрипт который выводит сообщение о стоимости доставки в указанную страну. Обязательно используй `switch`. \
    Формат сообщения: `'Доставка в [страна] будет стоить [цена] кредитов'`. \
    Но доставка есть не везде, если указанной страны нет в списке, то выводи в `alert` сообщение `'В вашей стране доставка не доступна'.` \
    Ниже приведен список стран и стоимость доставки. \
    `Китай - 100 кредитов` \
    `Чили - 250 кредитов` \
    `Австралия - 170 кредитов` \
    `Индия - 80 кредитов` \
    `Ямайка - 120 кредитов`
15. Напиши скрипт который просит посетителя ввести число в `prompt` до тех пор, пока посетитель на нажмет `Cancel` и каждый раз добавляет введенное значение к общей сумме. \
    При загрузке страницы пользователю предлагается в prompt ввести число. \
    Ввод добавляется к значению переменной `total`. \
    Операция ввода числа продолжается до тех пор, пока пользователь не нажмет кнопку `Cancel` в `prompt`. \
    После того как пользователь прекратил ввод нажав кнопку `Cancel`, показать `alert` со строкой `'Общая сумма чисел равна [сумма]'`. \
    \- Делать проверку того, что пользователь ввел именно число, а не произвольный набор символов, не нужно. Если хочешь, в случае некорректного ввода, показывай alert с текстом 'Было введено не число, попробуйте еще раз', при этом результат prompt плюсовать к общей сумме не нужно, после чего снова пользователю предлагается ввести число в `prompt`. \
    `let input;` \
    `let total = 0;`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aleksandra-hrevtsova.gitbook.io/senior-front-end-javascript/bazovyi-sintaksis/zadaniya-po-bazovomu-sintaksisu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
