Выразительный JavaScript - [5]
>\”
можно заключать в двойные кавычки. >\n
обозначает перевод строки, >\t
– табуляцию.Строка >“Между первой и второй\nсимвол будет небольшой”
на самом деле будет выглядеть так:
>Между первой и второй
>символ будет небольшой
Если вам нужно включить в строку обратный слэш, его тоже нужно экранировать: >\\
. Инструкцию >“Символ новой строки — это “\n””
нужно будет написать так:
>"Символ новой строки – это \"\\n\""
Строки нельзя делить, умножать и складывать. Однако с ними можно использовать оператор >+
, который будет соединять их друг с другом. Следующее выражение выдаст слово «соединение»:
>"сое" + "ди" + "н" + "ение"
Есть много способов манипуляций со строками, которые мы обсудим в главе 4.
Унарные операторы
Не все операторы записываются символами – некоторые словами. Один из таких операторов – >typeof
, который выдаёт название типа величины, к которой он применяется.
>console.log(typeof 4.5)
>// → number
>console.log(typeof "x")
>// → string
Будем использовать вызов >console.log
в примерах, когда захотим увидеть результат на экране. Как именно будет выдан результат – зависит от окружения, в котором вы запускаете скрипт.
Предыдущие операторы работали с двумя величинами, однако >typeof
использует только одну. Операторы, работающие с двумя величинами, называются бинарными, а с одной – унарными. Минус (вычитание) можно использовать и как унарный, и как бинарный.
>console.log(- (10 - 2))
>// → -8
Булевские величины
Часто вам нужна величина, которая просто показывает одну из двух возможностей – типа «да» и «нет», или «вкл» и «выкл». Для этого в JavaScript есть тип Boolean, у которого есть всего два значения – >true
и >false
(правда и ложь).
Сравнения
Один из способов получить булевские величины:
>console.log(3 > 2)
>// → true
>console.log(3 < 2)
>// → false
Знаки ><
и >>
традиционно обозначают «меньше» и «больше». Это бинарные операторы. В результате их использования мы получаем булеву величину, которая показывает, является ли неравенство верным.
Строки можно сравнивать так же:
>console.log("Арбуз" < "Яблоко")
>// → true
Строки сравниваются по алфавиту: буквы в верхнем регистре всегда «меньше» букв в нижнем регистре. Сравнение основано на стандарте Unicode. Этот стандарт присваивает номер практически любому символу из любого языка. Во время сравнения строк JavaScript проходит по их символам слева направо, сравнивая номерные коды этих символов.
Другие сходные операторы – это >>=
(больше или равно), ><=
(меньше или равно), >==
(равно), >!=
(не равно).
>console.log("Хочется" != "Колется")
>// → true
В JavaScript есть только одна величина, которая не равна самой себе – >NaN
(«не число»).
>console.log(NaN == NaN)
>// → false
>NaN
– это результат любого бессмысленного вычисления, поэтому он не равен результату какого-то другого бессмысленного вычисления.
Есть операции, которые можно совершать и с самими булевыми значениями. JavaScript поддерживает три логических оператора: и, или, нет.
Оператор >&&
— логическое «и». Он бинарный, и его результат – правда, только если обе величины, к которым он применяется, тоже правда.
>console.log(true && false)
>// → false
>console.log(true && true)
>// → true
Оператор >||
— логическое «или». Выдаёт >true
, если одна из величин >true
.
>console.log(false || true)
>// → true
>console.log(false || false)
>// → false
«Нет» записывается при помощи восклицательного знака “>!
”. Это унарный оператор, который обращает данную величину на обратную. >!true
получается >false
, >!false
получается >true
.
При использовании логических и арифметических операторов не всегда ясно, когда нужны скобки. На практике вы можете справиться с этим, зная, что у >||
приоритет ниже всех, потом идёт >&&
, потом операторы сравнения, потом все остальные. Такой порядок был выбран для того, чтобы в выражениях типа следующего можно было использовать минимальное количество скобок:
>1 + 1 == 2 && 10 * 10 > 50
Последний логический оператор не унарный и не бинарный – он тройной. Записывается при помощи вопросительного знака и двоеточия:
>console.log(true ? 1 : 2);
>// → 1
>console.log(false ? 1 : 2);
>// → 2
Это условный оператор, у которого величина слева от вопросительного знака выбирает одну из двух величин, разделённых двоеточием. Когда величина слева >true
, выбираем первое значение. Когда >false
, второе.
Неопределённые значения
Существуют два специальных значения, >null
и >undefined
, которые используются для обозначения отсутствия осмысленного значения. Сами по себе они никакой информации не несут.
Много операторов, которые не выдают значения, возвращают >undefined
просто для того, чтобы что-то вернуть. Разница между >undefined
и >null
появилась в языке случайно, и обычно не имеет значения.
Автоматическое преобразование типов
Ранее я упоминал, что JavaScript позволяет выполнять любые, подчас очень странные программы. К примеру:
>console.log(8 * null)
>// → 0
>console.log("5" - 1)
>// → 4
>console.log("5" + 1)
>// → 51
>console.log("пять" * 2)
>// → NaN
>console.log(false == 0)
>// → true
Когда оператор применяется «не к тому» типу величин, JavaScript втихую преобразовывает величину к нужному типу, используя набор правил, которые не всегда соответствуют вашим ожиданиям. Это называется приведением типов (coercion). В первом выражении
Жизнь современного человека плотно связана с видеоиграми. Даже если вы не играете сами, в вашем окружении наверняка найдутся заядлые геймеры, а новости из индустрии игр зачастую не обходят и вас стороной. Это положение дел приводит к вопросам: а что же такое видеоигры и какое место они занимают в жизни человека? Поиском ответов на них занимается дисциплина game studies. Александр Ветушинский – один из ведущих российских представителей этого направления исследований. Его книга «Игродром» – философское осмысление этапов развития игровой индустрии, анализ.
Человечество научилось собирать, обрабатывать и использовать в науке, бизнесе и повседневной жизни огромные массивы данных. Но что делать с данными, которых у нас нет? Допустимо ли игнорировать то, чего мы не замечаем? Британский статистик Дэвид Хэнд считает, что это по меньшей мере недальновидно, а порой – крайне опасно. В своей книге он выделяет 15 влияющих на наши решения и действия видов данных, которые остаются в тени. Например, речь идет об учете сигналов бедствия, которые могли бы подать жители бедных районов, если бы у них были смартфоны, результатах медицинского исследования, которые намеренно утаили или случайно исказили, или данных, ставших «темными» из-за плохого набора критериев для включения в выборку.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000.