Это вызывает головные боли, поэтому я обновил решение, которое будет работать с использованием самых распространенных аппаратных и программных инструментов, доступных пользователям в декабре 2014 года. Обратите внимание, что JDK / SDK / JRE / Netbeans и их последующие классы, компиляторы библиотек шаблонов, редакторы и debuggerz являются бесплатными.
Эта программа была протестирована с Java v8 u25. Это было написано и построено с использованием Netbeans IDE 8.0.2, JDK 1.8, OS - win8.1 (извинения), а браузер - Chrome (с двойными извинениями) - предназначен для помощи в решении OG UNIX-cmd-линии с современным графическим интерфейсом IDE в ZERO COST - поскольку информация (и IDE) всегда должна быть бесплатной. По Tapper7. Для всех.
кодовый блок:
пакет modchk; // Требование Netbeans. import java.util.Scanner; // import java.io. *; не требуется. Netbeans автоматически включает его. public class Modchk {public static void main (String [] args) {int input1; int input2; // Explicity определяет цель .exe для пользователя: System.out.println («Modchk by Tapper7». Тесты IOStream и basic bool modulo fxn. \n "+" Комментировали и кодировали для программистов на C / C ++, новых для Java \n «); // создаем объект, который читает целые числа: Scanner Cin = new Scanner (System.in); // следующее будет throw (), если вы не сделаете то, что он вам сообщает, или если // int введено == ArrayIndex-out-of-bounds для вашей системы. + - ~ 2.1e9 System.out.println ("Введите целочисленный wiseguy:"); input1 = Cin.nextInt (); // эта команда эмулирует "cin & gt; input1;"; // Я тестирую, как Эрни Бэнкс играл в тяжелый шар: «Давайте играть два!» System.out.println ("Введите другое целое ... anyday now:"); input2 = Cin.nextInt (); // отлаживаем сканер и istream: System.out.println («1-й N, введенный пользователем, был« + input1); System.out.println («второй N, введенный пользователем, был« + input2); // «делать математику» на vars, чтобы убедиться, что они мне полезны: System.out.println («modchk for» + input1); if (2% input1 == 0) {System.out.print (input1 + "равно \n"); // & lt; --- тот же эффект вывода, что и * .println} else {System.out.println (input1 + "нечетно"); } // endif input1 // one mo '' gain (как в istream dbg chk выше) System.out.println («modchk for» + input2); if (2% input2 == 0) {System.out.print (input2 + "равно \n"); } else {System.out.println (input2 + "нечетно"); } // endif input2} // end main} // end Modchk
JavaScript не имеет понятия списка фиксированных параметров. Для ваших собственных функций вы всегда можете указать столько параметров, сколько хотите, и передать их столько, сколько хотите.
Для встроенных функций, которые коррелируют с собственным кодом, это зависит от .
Вы спросили, от чего это зависит:
15 о встроенных (не путать с host ) вообще функциями
Если в описании конкретной функции не указано иное, если для функции или конструктора, описанной в этом разделе, дается меньше аргументов, чем требуется для функции, функция или конструктор должны вести себя точно так, как если бы ей были предоставлены достаточные дополнительные аргументы, каждый из которых был бы неопределенным значением.
blockquote>Хорошо. Если я передаю меньше аргументов, чем необходимо, это зависит от функции самой функции (прокрутите вниз раздел 15, чтобы найти спецификацию для каждой встроенной функции).
Если в описании конкретной функции не указано иначе, если для функции или конструктора, описанной в этом разделе, дается больше аргументов, чем указано для функции, дополнительные аргументы вычисляются по вызову, а затем игнорируются функцией. Однако реализация может определять поведение конкретной реализации, относящееся к таким аргументам, пока поведение не является бросанием исключения TypeError, которое определяется просто наличием дополнительного аргумента.
blockquote>Передача в слишком большом количестве аргументов никогда не следует поднимать TypeError. Но все же это может вызвать другие ошибки. Опять же, это зависит от функции, о которой вы говорите.
Вы говорили прямо о DOM, а не о встроенных функциях. Честно говоря, я не могу найти соответствующие части спецификации. Специфика ECMA намного проще читать, чем веб-сайт w3.
Попробуйте взглянуть на эту сообщение и, возможно, на эту .
Из MDN :
Объект
arguments
является локальной переменной, доступной во всех функциях;arguments
как свойство функции больше нельзя использовать.Вы можете ссылаться на функцию
arguments
в функции, используя объектarguments
. Этот объект содержит запись для каждого аргумента, переданного функции, индекс первой записи, начинающийся с 0.Вы можете использовать объект
blockquote>arguments
, если вы вызываете функцию с большим числомarguments
, чем формально объявили о принятии. Этот метод полезен для функций, которым может передаваться переменное количество аргументов.function myConcat(separator) { var result = ""; // iterate through non-separator arguments for (var i = 1; i < arguments.length; i++) { result += arguments[i] + separator; } return result; }
myConcat
. знак равно
– Chase
2 October 2012 в 17:24
[compiled code]
& quot; методов DOM и особенно в IE?
– wwaawaw
3 October 2012 в 02:30
Не повредит. Вы можете даже вызвать функцию с меньшим количеством параметров, чем требуется, если код функции в порядке с несколькими неопределенными значениями.
[native code]
& quot; методов DOM.
– wwaawaw
3 October 2012 в 02:18
Я не думаю, что это что-то испортит, если вы явно не используете массив неявных аргументов. Почему вы это делаете?