Переменные. Математические операции.

Фронтенд разработка на языке JavaScript. -> Ввод данных. Арифметика.

Переменные. Математические операции.

Программа Hello World.

Создаем html страницу index.html в новой папке.

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>Заголовок</title>
</head>

<body>

    <script>

       alert('Hello world!')

    </script>
</body>
</html>

Запускаем в браузере.

start page

Принимаем данные от пользователя, присваиваем их переменной и выводим на экран.

    var something = prompt('Вводи что нибудь')

    alert(something)

Присваивание.

x=y=z=1

start page

При цепочном присваивание вначале присваивается z=1 и потом значение 1 выталкивается влево и присваевается переменной y и далее по цепочке.

Операторы и операнды.

Оператор - специальный символ, обозначающий то или иное вычисление. Это конструкция языка не имеет возвращаемого значения.

Операнд - то над чем работает оператор (значения)

Операция - это то, что имеет возвращаемое значение.

Таким образом присваивание это и оператор и операция одновременно!

Арифметические операторы.

Сложение x + y

Вычитание x – y

Умножение x * y

Деление x / y

Остаток от деления x%y

Возведение в степень x**y

Инверсия (смена знака) -x

Инкремент (увеличение на 1) x++ или ++x

Декремент (уменьшение на 1) x– или –x

При опрерациях учитывается приоритет и работают скобочки.

Операции отношений (сравнение).

Не строгое равно ==

Строгое равно ===

При строгом сравнении учитывается и тип переменной.

Поэтому при сравнении строки и числа например

2 === '2'

Возвратиться false, хотя при не строгом сравнении

2 == '2'

Вернет true

Больше >

Меньше <

Больше или равно >=

Меньше или равно <=

Логические операторы.

Применяются в основном для комбинирования нескольких условий.

Логическое И

age > 10 && age < 30
login=="user" && password=="MySecret"

Логическое ИЛИ

age == 10 || age == 12

Комбинация.

(login=="user" || email=="user@itstep.org") && password=="MySecret"

Логическая инверсия.

Оператор “!”

Меняет результат операнда на противоположный.

!(profession == ‘banker’)

Инверсия - это самый простой вид битовых операций, полный их перечень изучает раздел дискретной математики.

При инверсии тупо меняются все биты (0 или 1) на противоположные.

Битовые операции/операторы.

Применяются крайне редко ради экономии памяти, повышения быстродействия и в криптографии.

Битовое и - &

Битовое исключающее ИЛИ - ^

Битовое ИЛИ - |

Оператор typeof

Определяет тип переменной.

«typeof 2» даст результат «number»

Название типа является строковой величиной и ее можно сравнивать.

typeof 2 === "number"

Любая неопределенная переменная имеет тип «undefined» и обращение к любому имени не должно приводить к ошибке, даже если это имя нигде ранее не определялось

console.log(typeof s); // вернет undefined

Именно поэтому не возникает ошибок в момент присвоения переменных

x = 1

т.к. переменная будет автоматически создана

Однако это вызовет ошибку

console.log(s);

Потому что ошибке приводит обращение к значению неопределенной переменной — так называемая попытка ее чтения (операцией console.log(x);).

Диалоговые окна.

alert - Окно сообщений.

prompt - Окно ввода сообщения. Возвращает то значение, которое вводит пользователь.

confirm - Окно подтверждения действия. Возвращает true или false

Все эти окна модальные, т.е. пока пользователь не отреагирует, браузер блокирует страницу.

Примечание. Окно alert возвращает значение undefined. Поэтому мы его и видем в консоле

Унарный опрератор + часто используется к приветению типа к числовому.

x = +prompt("Input x=")

Понятие программного объекта.

Объект - это программная сущьность (существо), которое обладает свойствами и методами.

Получение свойства.

object.prpperty_name

Вызов метода.

object.do_something(with_something)

Модуль Math

Math - это встроекнный в язык обьект со своими свойствами и методами.

Основные свойства.

Math.PI - число пи.

Math.E - основа натуральных логорифмов.

Основные методы.

Тригонометричные функции sin(), cos(), tan(), asin(), acos(), atan(), atan2()

Math.abs(x) - модуль числа.

Math.floor(x) - округляет x до целого большего.

Math.ceil(x), Math.round(x) - округляет x до целого большего.

Math.pow(x, y) - возводит в степень.

Math.random() - случайное число от 0 до 1.

Полный список

Домашнее задание.

Задание 1:

Запросить пользователя ввести сумму покупки и сохранить ее в переменной x.

Если она превышает 1000, уменьшить ее на скидку в 10%.

Результат вывести на экран.

Задание 2.

В переменной «х» хранится некоторое число. Необходимо проверить его четность и результат сохранить в переменной «parity».

Задание 3.

Вывести случайно число от 1 до 10.

Задание 4.

Сформировать строку, начиная с введенного пользователем значения переменной «х» и заканчивая значением «5». Но значение, вводимое пользователем, должно быть в диапазоне 1 - 5. Использовать оператор switch.

Фронтенд разработка на языке JavaScript. -> Домашнее задание. Решение.

Домашнее задание. Решение.

1.Запросите у пользователя его имя и выведите в ответ: «Привет, его имя!».

<script>

    var Name = prompt('input your name')

    alert('Hello, '+Name)

</script>

2.Запросите у пользователя год его рождения, посчитайте, сколько ему лет и выведите результат. Текущий год укажите в коде как константу.

<script>
    const Year  = prompt('input the year of your Birth Date')

    alert(2020-Year)

</script>

3.Запросите у пользователя длину стороны квадрата и выведите периметр такого квадрата.

<script>
    var side=prompt('input A side of the square')

    alert(side*4)
</script>

4.Запросите у пользователя радиус окружности и выведите площадь такой окружности.

<script>
    var radius = prompt('input radius of the circle')

    alert(Math.PI*Math.pow(radius,2))

</script>

5.Запросите у пользователя расстояние в км между двумя городами и за сколько часов он хочет добраться. Посчитайте скорость, с которой необходимо двигаться, чтобы успеть вовремя.

<script>
    var Time=prompt('input Time in hours')
    var Dist=prompt('input distance in km')

    alert(Dist/Time +' km/h')

</script>

6.Реализуйте конвертор валют. Пользователь вводит долла- ры, программа переводит в евро. Курс валюты храните в константе.

<script>
    const kurs = 0.84

    var Dollars =prompt('input summ in dollars')

    alert((Dollars*kurs).toFixed(2) +' Euro')

</script>

7.Пользователь указывает объем флешки в Гб. Программа должна посчитать сколько файлов размером в 820 Мб по- мещается на флешку.

<script>

   var Vol=prompt('input volume')

   var numb = Math.floor((Vol*1024)/820)

   alert(numb)

</script>

8.Пользователь вводит сумму денег в кошельке и цену одной шоколадки. Программа выводит сколько шоколадок может купить пользователь и сколько сдачи у него останется. Для решения задачи вам понадобится оператор % (остаток от деления).

<script>

    var pocket=prompt('input amount of money in your pocket')

    var choc=prompt('input price of the chocolate')

    var buyAble=(pocket/choc)-(pocket/choc)%1

    var left =pocket-buyAble*choc

    alert('number of chocolates:'+buyAble)

    alert('left in pocket:'+left)       
</script>

9.Запросите у пользователя трехзначное число и выведите его задом наперед.

number.split("").reverse().join("");


a = number % 10 // 6
b = Math.floor( ( number % 100 ) / 10 ); //5
c = Math.floor( ( number % 1000 ) / 100 ); // 4
alert( `${a}${b}${c}` );