Методический анализ темы "JavaScript"

Автор работы: Пользователь скрыл имя, 01 Декабря 2010 в 17:47, Не определен

Описание работы

Актуальность данной темы заключается в том, что в настоящее время большинство преподавателей подготавливаясь к своим лекциям, составляют опорные конспекты, перерабатывают материал и выстраивают его, таким образом, чтоб учащиеся его лучше усвоили. Проанализировав материал, преподаватель сам начинает лучше ориентироваться в нём.

Файлы: 1 файл

курсач.doc

— 311.00 Кб (Скачать файл)

      Основная  идея JavaScript состоит в возможности  изменения значений атрибутов HTML-контейнеров  и свойств среды отображения  в процессе просмотра HTML-страницы пользователем. При этом перезагрузки страницы не происходит. На практике это выражается в том, что можно, например, изменить цвет фона страницы или интегрированную в документ картинку, открыть новое окно или выдать предупреждение.

      Название "JavaScript" является зарегистрированным товарным знаком компании Sun Microsystems. Реализация языка, осуществленная разработчиками Microsoft, официально называется JScript. Версии JScript совместимы (если быть совсем точным, то не до конца) с соответствующими версиями JavaScript, т.е. JavaScript является подмножеством языка JScript. В данный момент JavaScript полностью занимает нишу браузерных языков. На синтаксис JavaScript оказал влияние язык Java, откуда и произошло название JavaScript; как и Java, язык JavaScript является объектным. Однако на этом их связь заканчивается: Java и JavaScript — это разные языки, ни один не является подмножеством другого.

      Стандартизация  языка была инициирована компанией Netscape и осуществляется ассоциацией ECMA (European Computer Manufacturers Association — Ассоциация европейских производителей компьютеров). Стандартизированная версия имеет название ECMAScript и описывается стандартом ECMA-262

      Первая  версия стандарта (принята в 1997 г.) примерно соответствовала JavaScript 1.1. На данный момент вышла уже третья редакция стандарта (принята в декабре 1999 г), включающая мощные регулярные выражения, улучшенную поддержку строк, новые управляющие конструкции, обработку исключений try/catch, конкретизированное определение ошибок, форматирование при численном выводе и другие изменения. Ведется работа над расширениями (источник) и четвертой редакцией стандарта. Отметим, что не все реализации JavaScript на сегодня полностью соответствуют стандарту ECMA.

 

       Урок №1

      Тема: Литералы 

      Литералом называют данные, которые используются в программе непосредственно. При  этом под данными понимаются числа или строки текста. Все они рассматриваются в JavaScript как элементарные типы данных. Приведем примеры литералов: 

      числовой  литерал: 10

      числовой  литерал: 2.310

      числовой  литерал: 2.3e+2

      строковый литерал: 'Это строковый литерал'

      строковый литерал: "Это строковый литерал"  

      Литералы  используются в операциях присваивания значений переменным или в операциях  сравнения: 

      var a=10;

      var str = 'Строка';

      if(x=='test') alert(x);  

      Оператор  присваивания (переменная = выражение) возвращает результат вычисления выражения, поэтому ничто не мешает полученное значение присвоить еще и другой переменной. Таким образом, последовательность операторов присваивания выполняется справа налево: 

      result = x = 5+7; 

      Два варианта строковых литералов необходимы для того, чтобы использовать вложенные строковые литералы. Если в строковом литерале требуется использовать одинарную кавычку, то сам литерал можно заключить в двойные кавычки: "It's cool!". Верно и обратное. Но если есть необходимость использовать в строковом литерале оба вида кавычек, то проще всего всех их "экранировать" символом обратной косой черты \, при этом саму строку можно заключить в любую пару кавычек. Например: 

      команда:

      document.write("It\'s good to say \"Hello\" to someone!");

      выдаст:

      It's good to say "Hello" to someone! 

      Помимо  строковых литералов (последовательностей  символов, заключенных в кавычки) есть еще строковые объекты; они создаются конструктором: var s = new String(). У этого объекта существует много методов (об объектах и методах пойдет речь в следующей лекции). Следует понимать, что строковый литерал и строковый объект — далеко не одно и то же. Но зачастую мы этого не замечаем, т.к. при применении к строчным литералам методов строчных объектов происходит преобразование первых в последние.

      Например, можно сначала присвоить var s='abra-kadabra', а затем применить метод: var m=s.split('b'), который неявно преобразует строковый литерал s в строковый объект и затем разбивает строку в тех местах, где встречается подстрока 'b', возвращая массив строк-кусков: массив m будет состоять из строк 'a', 'ra-kada' и 'ra' .

 

       Урок №2

      Тема: Переменные 

      Переменная — это область памяти, имеющая свое имя и хранящая некоторые данные. Переменные в JavaScript объявляются с помощью оператора var, при этом можно давать или не давать им начальные значения: 

      var k;

      var h='Привет!'; 

      Можно объявлять сразу несколько переменных в одном операторе var (тем самым уменьшая размер кода), но тогда их надо писать через запятую. При этом тоже можно давать или не давать начальные значения: 

      var k, h='Привет!';

      var t=37, e=2.71828; 

      Тип переменной определяется по присвоенному ей значению. Язык JavaScript — слабо типизирован: в разных частях программы можно присваивать одной и той же переменной значения различных типов, и интерпретатор будет "на лету" менять тип переменной. Узнать тип переменной можно с помощью оператора typeof(): 

      var i=5;          alert(typeof(i));

      i= new Array();   alert(typeof(i));

      i= 3.14;          alert(typeof(i));

      i= 'Привет!';     alert(typeof(i));

      i= window.open(); alert(typeof(i)); 

      Переменная, объявленная  оператором var вне функций, является глобальной — она "видна" всюду в скрипте. Переменная, объявленная оператором var внутри какой-либо функции, является локальной — она "видна" только в пределах этой функции. Подробнее о функциях будет рассказано в следующем разделе этой лекции.

      Например, в следующем фрагменте ничего не будет выведено на экран, несмотря на то, что мы обращаемся к переменной k после описания функции, и даже после ее вызова: 

      function f()

      { var k=5; } 

      f(); alert(k); 

      Причина в том, что переменная k является локальной, и она существует только в процессе работы функции f(), а по окончании ее работы уничтожается.

      Если  имеется глобальная переменная k, а внутри функции объявляется локальная переменная с тем же именем (оператором var k), то это будет другая переменная, и изменение ее значения внутри функции никак не повлияет на значение глобальной переменной с тем же именем. Например, этот скрипт выдаст 7, поскольку вызов функции f() не затронет значения глобальной переменной k: 

      var k=7; 

      function f()

      { var k=5; } 

      f(); alert(k); 

      То  же касается и аргументов при описании функций (с той лишь разницей, что  перед ними не нужно ставить var): если имеется глобальная переменная k, и мы опишем функцию function f(k) {...}, то переменная k внутри {...} никак не связана с одноименной глобальной переменной. В этом плане JavaScript не отличается от других языков программирования.

      Примечание. Объявлять переменные можно и без оператора var, просто присваивая переменной начальное значение. Так зачастую делают с переменными циклов. В следующем примере, даже если переменная i не была объявлена ранее, все будет работать корректно: 

      for(i=0; i<8; i++) { ... } 

      Однако  опускать var не рекомендуется. Во-первых, это нарушает ясность кода: если написано i=5, то непонятно, вводится ли здесь новая переменная или меняется значение старой. Во-вторых, и это главное, нужно помнить следующий момент, часто приводящий к неправильной работе программы.

      Вне функций объявление переменной без  оператора var равносильно объявлению с оператором var — в обоих случаях переменная будет глобальной. Внутри же функции объявление переменной без оператора var делает переменную глобальной (а не локальной, как можно было бы предположить), и значит, ее значение могут "видеть" и менять другие функции или операторы вне этой функции. При этом такая переменная становится глобальной не после описания, а после вызова этой функции. Пример: 

      function f()

      { var i=5; k=7; } 

      f(); alert(k);

      В приведённом примере после i=5 стоит точка с запятой (а не запятая). Значит, k=7 — это отдельное объявление переменной, уже без оператора var. Поэтому переменная k "видна" снаружи и ее значение (7) будет выведено оператором alert(k). Чтобы скрыть переменную k, нужно было после i=5 поставить запятую.

      Рассмотрим другой пример, показывающий, к каким неожиданным последствиям может привести отсутствие var при описании переменной: 

      function f(i)

      { k=7;

        if(i==3) k=5;

        else { f(3); alert(k); }

      }

      f(0); 

      Мы  вызываем f(0), переменной присваивается значение k=7, далее выполнение функции идет по ветке else — и оператор alert(k) выдает 5 вместо ожидавшегося 7. Причина в том, что вызов f(3) в качестве "побочного эффекта" изменил значение k. Чтобы такого не произошло, нужно перед k=7 поставить var. Тогда переменная k будет локальной и вызов f(3) не сможет ее изменить, так как при вызове функции создаются новые копии всех ее локальных переменных.

      При написании больших программ подобные ошибки трудно отследить, поэтому настоятельно рекомендуется все переменные объявлять  с оператором var, особенно внутри функций.

 

       Урок №3

      Тема: Массивы 

      Массивы делятся на встроенные (document.links[], document.images[] и т.п. — их еще называют коллекциями) и определяемые пользователем (автором документа). Коллекции будут обсуждаться в следующей лекции. Здесь же мы подробно остановимся на массивах, определяемых пользователем. Для массивов определено несколько методов: join(), reverse(), sort() и другие, а также свойство length, которое позволяет получить число элементов массива.

      Для определения массива пользователя существует специальный конструктор Array. Если ему передается единственный аргумент, причем целое неотрицательное число, то создается незаполненный массив соответствующей длины. Если же передается один аргумент, не являющийся числом, либо более одного аргумента, то создается массив, заполненный этими элементами: 

      a = new Array();

      // пустой массив (длины 0) 

      b = new Array(10);

      // массив длины 10 

      c = new Array(10,'Привет');

      // массив из двух элементов: числа  и строки 

      d = [5, 'Тест', 2.71828, 'Число e'];

      // краткий способ создать массив  из 4 элементов 

      Элементы  массива номеруются с нуля. Поэтому  в последнем примере значение d[0] равно 5, а значение d[1] равно 'Тест'. Как видим, массив может состоять из разнородных элементов. Массивы не могут быть многомерными, однако ничто не мешает завести массив, элементами которого будут тоже массивы.

      Метод join()

      Метод join() позволяет объединить элементы массива в одну строку. Он является обратным к рассмотренному выше методу split(), который разрезает объект типа String на куски и составляет из них массив. Кстати, метод split() демонстрирует тот факт, что массив можно получить и без конструктора массива.

      Рассмотрим  пример преобразования локального URL в  глобальный URL, где в качестве адреса сервера будет выступать www.intuit.ru. Пусть в переменной localURL хранится локальный URL некоторого файла: 

Информация о работе Методический анализ темы "JavaScript"