Правильные выходы из функции
Доброго время суток. Я недавно начал изучать js и не только его. У меня такой вопрос, как лучше сделать чтобы функция возвращала ложь и прекращалась. Быдлофункция ниже.
Функция принимает аргументы и проверяет их на целое положительное число, в случае же что все аргументы являются таковыми, то далее первый аргумент сравнивается со вторым и третьим. function Check() { //// Проверяем все параметры на целое число for(var i=0;i<arguments.length;i++) { arguments[i] = parseInt(arguments[i], 10); if (!(Number.isSafeInteger(arguments[i]) && (Math.ceil(arguments[i]) == arguments[i]) && (Math.max(0, arguments[i]) == arguments[i]))) { //alert("Значение не верно: "+ arguments[i] ); return 0; /*здесь надо выйти из функции и вернуть ложь, причем чтобы как только цикл наткнется на число, не подходящее условиям, то сразу нужно выйти и вернуть ложь, не проверяя другие аргументы */ else /*если все числа прошли проверку то здесь будет проверка на присутствие первого аргумента(числа) в диапазоне от второго аргумента до третьего и также выйти из функции и вернуть ложь если число не входит в диапазон } } } Помогите понять как оптимизировать, правильно прервать цикл, функцию и вернуть ложь и т.п. Возращает ли что-нибудь цикл (сам по себе, в случаях break ит.п.)? И еще по поводу самой проверки целого числа: то что я использую нормально? и какие есть более оптимальные способы? |
Для начала, оформи нормально код - http://javascript.ru/formatting. Невозможно читать.
|
Цитата:
if (!((Number.isSafeInteger(arguments[i]) && (Math.ceil(arguments[i]) == arguments[i]) && (Math.max(0, arguments[i]) == arguments[i])))) Твои мат выражения я не проверял, но если условие истино, ты выйдешь с нулем. Можешь явно вернуть false, если хочешь, хотя разница будет только при строгой проверке. А так -- все правильно, ты выйдешь и из цикла и из функции, в данном случае. |
Цитата:
|
Часовой пояс GMT +3, время: 22:03. |