Изучаю JavaScript. Тема: «Псевдомассив аргументов "arguments"».
Задача из учебника:
Как в функции отличить отсутствующий аргумент от undefined?
function f(x) {
// ..ваш код..
// выведите 1, если первый аргумент есть, и 0 - если нет
}
f(undefined); // 1
f(); // 0
Ответ из учебника:
Узнать количество реально переданных аргументов можно по значению arguments.length:
function f(x) {
alert( arguments.length ? 1 : 0 );
}
f(undefined);
f();
Меня конечно такой ответ не очень устроил, т.к. я хотел видеть результат получения ноля, когда отсутствует первый аргумент, но присутствуют другие.
Вот, что мне хочется получить:
// выведите 1, если первый аргумент есть, и 0 - если нет
'use strict';
function f(x, a, b) {
// code
}
f(undefined); // Получить 1
f(); // Получить 0
f('', 78, 'abc'); // Получить 0
т.е. когда первый "отсутствующий", но есть другие, чтобы выдавал 0.
1). Мой первый вопрос, терминология. В моем варианте f('', 78, 'abc'); Первый аргумент назывется "отсутствующий" или нет?
В поисках решения,я пытался записать так:
alert((arguments[0]).length ? 1 : 0);
alert(arguments[0].length ? 1 : 0);
Но видимо такая запись некорректная и я решил действовать основательно, много думал и в итоге, вот мое решение в одну строку:
'use strict';
function f(x, a, b) {
arguments.length ? console.log(arguments[0] === '' ? 0 : 1) : console.log(0);
}
f(undefined); // 1
f(); // 0
f('', 78, 'abc'); // 0
Все, что хотел, я получил, теперь отсутствующий аргумент отличаем от undefined; получаем 0, когда первый отсутствующий и других нет, и когда первый отсутствующий,но есть другие.
2). Мой второй вопрос. Как вам мой код? Возможно я что-то упустил или есть более оптимальная запись.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Хочу сделать авторизацию при переходе в корень сайта, остальные ссылки не трогатьПытаюсь сделать:
Проблема заключается в том, что после названия файла с темой css доставляется символ BOMВыглядит так: