Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Повторные и опущенные объявленияСодержание книги
Поиск на нашем сайте
Если присвоить значение переменной, необъявленной с помощью инструкции var, JavaScript неявно объявит эту переменную за вас. Однако переменные, объявленные таким образом, всегда создаются как глобальные, даже если они работают только в теле функции.
Область видимости переменной Область видимости (scope) переменной – это та часть программы, для которой эта переменная определена. Глобальная переменная имеет глобальную область видимости – она определена для всей JavaScript-программы. Переменные, объявленные внутри функции, определены только в ее теле. Они называются локальными и имеют локальную область видимости. Параметры функций также считаются локальными переменными, определенными только в теле этой функции. Внутри тела функции локальная переменная имеет преимущество перед глобальной переменной с тем же именем. var scope = "глобальная"; // Объявление глобальной переменной function checkscope() { var scope = "локальная"; // Объявление локальной переменной с тем же именем document.write(scope); // Используется локальная переменная, а не глобальная } checkscope(); // Печатается слово "локальная" Объявляя переменные с глобальной областью видимости, инструкцию var можно опустить, но при объявлении локальных переменных она необходима. Посмотрите, что получается, если этого не сделать: scope = "глобальная"; // Объявление глобальной переменной, даже без var function checkscope() { scope = "локальная"; // Ой! Мы только что изменили глобальную переменную document.write(scope); // Используется глобальная переменная myscope = "локальная"; // Здесь мы неявно объявляем новую глобальную переменную document.write(myscope); // Используется новая глобальнаяпеременная } checkscope(); // Печатает "локальнаялокальная" Отсутствие блочной области видимости Правило, согласно которому все переменные, объявленные в функции, определены во всей функции, может иметь удивительные следствия. Например: var scope = "глобальная"; function f() { alert(scope); // Показывает "undefined", а не"глобальная". var scope = "локальная"; // Переменная инициализируется здесь, // но определена она везде в функции. alert(scope); // Показывает "локальная" } f(); Кто-то может подумать, что в результате первого вызова alert() будет напечатано слово «глобальная», т. к. инструкция var, объявляющая локальную переменную, еще не была выполнена. Однако согласно правилу определения областей видимости все происходит не так. Локальная переменная определена во всем теле функции, значит, глобальная переменная с тем же именем скрыта во всем теле функции. Хотя локальная переменная определена везде, до выполнения инструкции var она не инициализирована. Поэтому функция f в предыдущем примере эквивалентна следующему фрагменту: function f() { var scope; // Локальная переменная определяетсяв начале функции alert(scope); // Здесь она существует,но имеет значение undefined scope = "локальная"; // Здесь мы инициализируем переменную и присваиваем ей значение alert(scope); // Здесь она уже имеет значение } Этот пример показывает, почему хорошая практика программирования подразумевает помещение всех объявлений переменных в начале функции.
Теги JavaScript JavaScript не предназначен для создания автономных приложений. Программа на JavaScript встраивается непосредственно в исходный текст HTML-документа и интерпретируется брaузером по мере загрузки этого документа. С помощью JavaScript можно динамически изменять текст загружаемого HTML-документа и реагировать на события, связанные с действиями посетителя или изменениями состоятия документа или окна. Важная особенность JavaScript - объектная ориентированность. Программисту доступны многочисленные объекты, такие, как документы, гиперссылки, формы, фреймы и т.д. Объекты характеризуются описательной информацией (свойствами) и возможными действиями (методами). 4.5.1 Тег <script> Сценарий JavaScript встраивается в HTML-документ с помощью тега <script>. Пример 4.1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <h1>Начнем?</h1> <script type="text/javascript"> <!-- document.write("Привет!"); //--> </script> </body> </html> РЕЗУЛЬТАТ: Начнем?
Привет! Привет! Текст сценария оформляется как комментарий, чтобы не было проблем у посетителей, брaузеры которых не понимают JavaScript. Кроме того к символам, завершающим комментарий добавляется еще два символа " / ", т.к. некоторые браузеры рассматривает строку, состоящую только из символов " --> ", как ошибочную. В первом примере для объекта с именем document вызывается метод write. В качестве параметра ему передается текстовая строка "Привет!". Строка закрывается символом "; ", которым отделяются друг от друга все операторы JavaScript. Объект document – это HTML-документ, загруженный в окно брaузера. Метод write записывает в тело HTML-документа строку "Привет!". При этом документ будет выгдядеть так, как будто эта строка находится в нем на месте сценария. Имейте в виду, что JavaScript различает строчные и прописные буквы. Кроме того символ дефиса в JavaScript распознается как минус, т.е. если фон объекта в HTML-документе задается через свойство background-color, то в JavaScript - через backgroundColor. Пример 4.2
Цвет фона объекта меняется с белого на красный при наведении на объект мыши: <img src="attachment.png" style="border:none;float:right;margin-left:5px;" OnMouseOver="this.style.backgroundColor='red';" OnMouseOut="this.style.backgroundColor='white';">
Переменные в JavaScript Имя переменной не должно совпадать с зарезервированными ключевыми словами JavaScript. Все переменные в JavaScript объявляются с помощью ключевого слова var. При объявлении тип переменной не указывается. Этот тип присваивается переменной только тогда, когда ей присваивается какое-либо значение. Числа в строки интерпретатор JavaScript преобразует автоматически. Для преобразования строк в числа используют специальные функции parseInt и parseFloat. Пример <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <h1>Пример преобразования типов</h1> <script type="text/javascript"> <!-- var Buf=""; Buf=100+" - число сто<br>"; Buf+=(parseInt("50")+50)+" - число сто<br>"; document.write(Buf); //--> </script> </body> </html>
РЕЗУЛЬТАТ: Пример преобразования типов
100 - число сто
4.5.3 Примеры использования простейших преобразований типов: var myVar = "3.14159", str = ""+ myVar,// в string int = ~~myVar, // в integer float = 1*myVar, // во float bool =!!myVar, // в boolean - все непустые строки и числа кроме 0 будут true array = [myVar]; // в array Конвертирование в даты (new Date(myVar)) и регулярные выражения (new RegExp(myVar)) нужно делать с использованием конструкторов. Для создания регулярных выражений используйте структуру: /регулярное_выражение/флаги. Операторы языка JavaScript Операторы JavaScript напоминают общеизвестные операторы языка С++. Унарные операторы
Бинарные операторы
|
||||||||||||||||||||||
Последнее изменение этой страницы: 2016-12-28; просмотров: 247; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.19.224 (0.007 с.) |