![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Упражнения. 1. Разработать документ HTML, который при его загрузке в браузер спрашивает пользователя коды символов кириллицы или латиницы он хочет отобразить
1. Разработать документ HTML, который при его загрузке в браузер спрашивает пользователя коды символов кириллицы или латиницы он хочет отобразить. После чего отображает на странице таблицу соответствующих символов и их ASCII-кодов. Для получения ASCII-кода символа воспользуйтесь методом charCodeAt(index) строки, где параметр представляет позицию символа в строке. Создайте два сценария — один с циклом for, а другой с циклом while. 2. Разработайте документ, который при загрузке в браузер через диалоговое окно, отображаемое функцией prompt(), предоставляет пользователю возможность сформировать страницу HTML и отобразить ее. Предусмотрите два варианта работы сценария: введенный пользователем в диалоговом окне код HTML сразу же отображается в браузере и пользователь вводит постепенно весь код страницы, а потом страница отображается сразу же целиком. Урок 6. Функции Функция – это именованная последовательность операторов, которая инициализируется и выполняется простой ссылкой на имя функции. Синтаксис задания функций в JavaScript следующий: function имя_функции([формальные_параметры]) { [операторы] [return выражение] } Вызов в сценарии: имя_функции(список_фактических_параметров) Во многих языках программирования можно указать при объявлении функции способ передачи в нее параметров — по ссылке или по значению. В первом случае передается ссылка на область памяти фактического параметра, что приводит к изменению его значения, если оно меняется в теле функции. Во втором случае в функцию передается копия значения фактического параметра, и его изменение в теле функции не приводит к изменению значения фактического параметра. В JavaScript не предусмотрен механизм указания способа передачи параметров. Здесь используется заранее предопределенное правило для передачи параметров разных типов. Строки, целые, вещественные и булевы значения передаются по значению. Тогда как объекты и массивы передаются по ссылке. Функция JavaScript всегда возвращает некоторое значение. Для явного указания возвращаемого значения используется операция return. Ее операнд определяет возвращаемое функцией значение. Если в теле функции явно не задается возвращаемое значение, то по умолчанию она возвращает значение undefined. Поэтому функцию JavaScript всегда можно использовать в выражениях. Обычно все определения функций задаются в элементе SCRIPT заголовочной части документа HTML (элемент HEAD). Функции JavaScript могут быть рекурсивными. 4Пример 7. Рекурсивный вызов функции Реализуем сценарий вычисления факториала с использованием рекурсивного вызова функции. Это классический пример рекурсии, простой для ее понимания. Однако с точки зрения эффективности он не является наилучшим, так как факториал всегда можно вычислить, используя обычный цикл for. В нашем сценарии пользователь через диалоговое окно, отображаемое методом prompt() объекта window, передает целое число, факториал которого следует вычислить. Осуществляется проверка введенного числа и вызывается рекурсивная функция factorial(). Полный текст сценария приводится ниже: < script> // определение рекурсивной функции function factorial(n) {// база рекурсии (окончание ее)if ((n == 0) || (n == 1)) return 1// рекурсивный вызов функции else return n * factorial(n-1) } x = window.prompt(" Введите целое число", " ") if (x == Number(x)){ alert(factorial(x)) } else alert(" Следует ввести целое число! ")
< /script> Заметим, что наш сценарий не будет вычислять факториал любого числа. Во-первых, для чисел, больших 170, значением факториала будет число Infinity, так как для таких чисел факториал больше числа 1.7976931348623157∙ 10308, а во-вторых, для чисел, больших 474, будет получена ошибка переполнения стека, используемого в любом языке программирования для хранения вызовов вложенных функций. Функции JavaScript позволяют вообще не задавать при их определении списка формальных параметров, а использовать в теле функции массив arguments, в котором хранятся все фактические параметры. Доступ к элементам массива осуществляется с помощью операции индексирования — квадратные скобки с заданным внутри них индексом элемента: arguments[4] Механизм хранения переданных в функцию фактических параметров в массиве arguments позволяет создавать функции с заранее неизвестным числом параметров, т. е. в определении функции вообще можно не указывать формальные параметры, а работать в теле функции с массивом arguments. Можно часть параметров в определении указать, а остальные получать через этот массив. Еще раз отметим, что в массиве arguments хранятся все фактически переданные параметры — и те, которые соответствуют явно определенным формальным параметрам, и те, которые переданы дополнительно при вызове функции в сценарии. 4Пример 8. Получение значений фактических параметров функции Создадим функцию, возвращающую строку, в которой все переданные в нее фактические параметры, начиная со второго, разделены символом, заданным ее первым параметром: function myConcat(separator) {result=" " // инициализация // итерации по всем переданным параметрам for (var i=1; i < arguments.length; i++) { result += arguments[i] + ((i == arguments.length-1)? " ": separator) } return result } Теперь можно вызывать эту функцию с произвольным числом параметров. Например, следующий вызов myConcat(", ", " red", " orange", " blue")возвратит строку " red, orange, blue"Можно выполнить и такой вызов: myConcat(": ", " red", " orange", " blue", " yellow")Результатом будет строка " red: orange: blue: yellow"
|