03. Логические значения
Контрольные вопросы
-
Какое значение получит переменная x. Ответ объясните.
var y = 100; var x = y || 0;
ОтветОтвет: 100. Логическое значение первого операнда (100) есть true, значит, это значение становится результатом выполнения операции.
-
Какое значение получит переменная x. Ответ объясните.
var y = ""; var x = y+1 && (y+275).substring(1)
ОтветОтвет: строка "75". Поскольку логическое значение первого операнда есть true, результатом выполнения операции становится значение второго операнда.
-
Какое значение получит переменная x. Ответ объясните.
var x = 1; if (function (t) {return --t;}) x++;
ОтветОтвет: число 2. Объекты (в том числе функции и массивы), значения которых отличны от null, в контексте логического значения преобразуются в true.
-
Какое значение получит переменная x. Ответ объясните.
var x = 1; if (function (t) {return --t;}(x)) x++;
ОтветОтвет: число 1.
- Вычисляется функциональный литерал от x, который равен 1. Значит, вычисляем функцию от аргумента t, который равен 1. "--t" — уменьшает на 1 значение t, получаем 0, и 0 возвращается в качестве результата вычисления функции.
- Получаем: if (0) x++; Число 0 в контексте логического выражения дает false, инструкция x++; не выполняется и x сохраняет прежнее значение 1.
-
Какое значение получит переменная x. Ответ объясните.
var x = 1; if (function (t) {return t--;}(x)) x++;
ОтветОтвет: число 2.
Всё тоже, что и в предыдущем задании (функция вычисляется), но уменьшение t-- срабатывает уже после возврата значения t (то есть единицы), поэтому условие истинно, x увеличивается на 1.
-
Какое значение получит переменная x. Ответ объясните.
var t = function (x, y, z) { y = y || ""; z = z || ""; return x.concat(y,z); }
var x = t("1",2,3,4);
var x = t("1",2,3);
var x = t("1",2);
var x = t("1");
var x = (t("1",true)).substring(1);
var x = (t("1",(t("м","от")).substring(1))).replace(/\d/,"к");
Ответ- Ответ: строка "123". Последний фактический аргумент игнорируется.
- Ответ: строка "123".
- Ответ: строка "12".
- Ответ: строка "1".
- Ответ: строка "true".
- Ответ: строка "кот".