02.md 5.8 KB

Условия, Boolean, Логические операторы

Присвоение

Типы данных JS

Числа.

Вы уже знакомы с числами:

var b = 5
var c = 6.57
var myPi = Math.PI

В JS для целых и дробных существует единый тип Number. Так же этот тип имеет специальные значения NaN (Not A Number) и Infinity (бесконечность).

4/"asdf" // бессмысленное выражение, как результат - NaN
15/0 // на ноль делить нельзя, но в высшей математике - можно :-)

Строки

Строка - тип String. Некое множество символов. Для перевода строки в число используйте + или parseInt ( для целых ) или parseFloat ( для чисел с дробной частью )

var someString = "foo";
var concatenatedString = someString + " bar";
var stringWithNumberInside = "123";
var integerNumberByString  = +stringWithNumberInside;
var floatNumberByString    = parseFloat("-15.15");

Boolean

true (правда) или false (ложь)

В основном используется для двух задач:

  • Та или иная переменная-флаг для внутреннего использования. Например isLoggedIn может показывать залогинен пользователь на сайте или нет:
var IsLoggedIn = true
var IsLoggedIn = false
  • Как результат той или иной логической операции:
var isLoggedIn = (password == rightPassword) && (login == rightLogin) //пользователь залогинен, если пароль и логин совпадают с верными
var isUserOldEnoughToSeeTheAdultVideos = age > 18 // пользователь может смотреть видео, если ему больше 18 лет.

То или иное логическое выражение может использоваться в условиях, которые делают или не делают определенные операции в зависимости от истинности условия.

Object

Объект. Сложная структура данных, которая в одной переменной может объединять данные других типов и операции над ними. Будет рассмотрено на следующих занятиях.

var person = {
    name: "Ivan",
    surname: "Ivanov",
    age: 25
}

undefined

Если что-то в Javascript не определено, то это, обычно, undefined:

var a; //значение a - undefined

undefined - это и тип, и единственное его значение.

null

null - в целом аналогичен undefined, но предназначен для использования его программистом. Т. е. если вы хотите пометить переменную как пустую - используйте null

Операции сравнения и булевы операции.

Каждая переменная или литеральное значение могут быть предметом сравнения с другими значениями:

Равенство

1 == 2
1 != 2
1 == 1
1 != 1
"text" == 5
"text" != 5
"text" == "Text"
"text" == "text"
true   == "true"
true   == false
false  == 0
false  === 0
""     == false
""     !== false

Больше, меньше...

5 > 6
6 > 5
5.0 >= 5
"a" < "b"
"b" <= "a"

Результатом таких операций является значение типа Boolean, то есть true или false

Логические операции

Не !

5 == 5
5 != 5
!true
!false
!(5 == 5)
!(5 != 5)
!!0

Как видите, не позволяет инвертировать булево значение. Двойное не позволяет получить приведенное к типу Boolean значение переменной.

Или ||

Или позволяет объединять несколько булевых значений в одно, по следующей логике: Если A или B истинно, то результат - истина. Иначе - результат ложный:

var isDrunk = isDrunkByBeer || isDrunkByVodka //если пили или водку, или пиво, все равно пьяные :-)
var isFlyable = isFly || isBird || isAircraft //что-то может летать, если это нечто - самолет, муха или птица, не важно что это.

Таблица истинности: | A | B | результат | | ------ | ----- | --- | | false | false | false | | true | false | true | | false | true | true | | true | true | true |

И &&

И требует что бы ВСЕ операнды были истинны, иначе результат ложен:

var isBodun   = isDrunkByBeer &&  isDrunkByVodka //если пили и водку, и пиво, то бодун :-)
var isYoung   = age > 16 && age < 30 // человек молод от 16 до 30.

Таблица истинности: | A | B | | | ------ | ----- | --- | | false | false | false | | true | false | false | | false | true | false | | true | true | true |