русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лекция1


Дата добавления: 2015-07-09; просмотров: 524; Нарушение авторских прав


(www.ibm.com/developerworks/ru/library/wa-javascriptstart/)

  1. Объявление скрипта в html файлах:

<script language=”JavaScript”>

<!-- Begin to hide script contents from old browsers.

JavaScript statements...

// End the hiding here. -->

</script>

 

  1. Объявление скрипта во внешних файлах:

<HEAD>

<TITLE>My Page</TITLE>

<script SRC="common.js">

...

</SCRIPT>

</HEAD>

<BODY>

..

  1. Необходимые для начала функции:

console.log(“что то”);

alert(“some text”);

document.write(“some text”);

Типы значений:

  1. Строгой типизации нет.
  2. Основные типы это:
    1. Числа (специальные числовые значения Infinity (бесконечность) и NaN (ошибка вычислений). Они также принадлежат типу number)
    2. Логические (да/нет)
    3. Строки
    4. null (не является «ссылкой на несуществующий объект» или «нулевым указателем». Это специальное значение, которое имеет смысл «ничего» или «значение неизвестно».)
    5. undefined. Обычно появляется если переменная объявлена, но в неё ничего не записано)
  3. Приведение типов (learn.javascript.ru/types-conversion).
    1. Cтроковое преобразование String(val) или оператор "+", у которого один из аргументов строка.
    2. Числовое преобразование. Number(val), либо оператор унарный плюс "+". Вызывается при сравнении данных различных типов (кроме сравнений ===, !==)
    3. Преобразование к логическому значению. Boolean(value) или двойное логическое отрицание !!value

Все значения, которые интуитивно «пусты», становятся false. Их несколько: 0, пустая строка, null, undefined и NaN. Остальное, в том числе и любые объекты — true. Т.е. пустой объект или массив тоже true.

Например,

alert( [] == [] ); // falseт.к. Два объекта равны только тогда, когда это один и тот же объект.



alert( [] == ![] ); // trueт.к. '!' преобразует аргумент к логическому типу. Массив является объектом, так что это true Т.е. ![] = !true = false потом проверка равенства между объектом [] и примитивом вызывает численное преобразование объекта-массива в строку. ПУСТУЮ строку!!! Потому получили '' == false. А теперь сравнение различных типов вызывает численное преобразование слева и справа: 0=0

Переменные:

Два способа объявления:

var i = 0;

x = i+5;// без var мы неявно объявляем глобальную переменную х, где-бы её не объявили

Пример объявления и реализации функции:

function f1() { return y - 2; } f1(); // runtime error   var f2=function () { var y; return y - 2; } f2(); //вернет NaN function f1(x) { return x + 1; }   var f2 = function(x) { return x + 1; }   К обеим этим функциям мы можем обратиться одинаково: alert(f1(5)); alert(f2(5));

Замыкания и анонимные функции:

Новая область видимости переменных в JavaScript возникает только в одном единственном случае – при объявлении функции. Таким образом, если в функции объявить переменную, то ее имя не перекроется с таким же именем, но объявленным в глобальном контексте.

var a = 5;

function f1(){

var a = 10; // переменная a = 10 объявлена в другом контексте видимости

alert(a); // Выведет 10 n

}

f1();

alert(a); // Выведет 5

При добавлении своего кода на чужую страницу (или чужого кода на свою страницу) есть опасность, то практически всегда в нем мы будем объявлять создание своих функций и своих новых переменных. А создаваться они будут в контексте загруженной пользователем страницы, где до нас уже могут существовать какие-либо переменные и функции. Понятно, что мы никак не можем предугадать, какие имена будут у этих переменных, а значит, создавая свои собственные, мы можем случайно переопределить уже существующие переменные, внеся тем самым непредсказуемые изменения в логику работы пользовательских скриптов. Таким образом, добавив свой код, помимо его полезной работы, мы можем получить и совершенно непредсказуемые побочные явления, связанные с перопределением переменных.

Поэтому лучше всегда будем использовать анонимные функции – они обеспечивают гарантию от побочных явлений за счет добавления всего 17 лишних символов скрипта (function(){тут ВАШ код})(); а весь код встраивается между фигурными скобками.

Объявление анонимной функции:

Анонимные функции определяются также как и именованные, за исключением того факта, что им не присваивается имя.

function(x) {

alert(x); }

Однако, если ее просто объявить, то толку от нее не будет никакого. Чтобы от любой функции была польза – ее надо вызвать. Вызов анонимной функции всегда совмещен с ее объявлением.

Для этого полностью все объявление функции берется в круглые скобки, после которого также в круглых скобках приписываются все ее аргументы вызова:

(function(x) { alert(x); })(5);   Для функции без аргументов: (function() { alert('Я функция!'); })();

Литералы:

  1. Массивы (learn.javascript.ru/array):

coffees = ["French Roast", "Columbian", "Kona"];

coffees.length;//=3.

alert(coffees[1]);

myList = [’home’, , ’school’, , ]; // какова длина массива?

  1. Числа с плавающей точкой:

3.1415, -3.1E12, .1e12, and 2E-12

  1. Целые числа:

42, 0xFFF, -345, 034

  1. Объекты (www.ibm.com/developerworks/ru/library/wa-oojavascript/):
    www.puzzleweb.ru/javascript/14_objects.php

var Sales = "Toyota";

car = {myCar: "Saturn", getCar: "Honda", special: Sales}

document.write(car.myCar); // Saturn

при удалении свойства его значение не просто устанавливается в значение undefined, оператор delete действительно удаляет свойство из объекта.

    1. delete – удаление объекта
    2. new – создание объекта
    3. this – указывает на текущий объект
    4. typeof – возвращает тип объекта
  1. Строки:

"one line \n another line"

‘one line \n another line’

Операторы:

  1. Арифметические
  2. Сравнения.
    1. Точное сравнение - === (равны значения и равны типы)
    2. Точное «не равно» - !== (не равны по значению и/или не равны по типу)
  3. Логические - && (и), || (или), ! (не)
  4. Специальные:
    1. Запятая , разделяет выражения.
    2. тернарный оператор: condition ? val1 : val2;
    3. void – выражение после (или внутри) этого оператора вычислится без возврата значения.

Пример:

<A href="javascript:void(0)">Click here to do nothing</A>

Выражения:

  1. Основной смысл: выражение – это некоторый правильный набор литералов, переменных, операторов и выражений, который вычисляет одно значение – число, строку или логическое значение.
  2. Выражения: условные, циклов, манипуляции с объектами, комментарии
  3. Условные: if…else

if (condition) {

statements1

}

else {

statements2

}

 

  1. switch:

switch (expression){

case label1 :

statement;

break;

case label2:

statement;

break;

default :

statement;

}

  1. Циклы: for(…;…;…){} , do…while, while:

for ([initialExpression]; [condition]; [incrementExpression]) {

statements

}

 

do {

statement

} while (condition)

 

while (condition) {

statements

}

  1. for…in :

for (variable in object) {

statements }

 

  1. Комментарии:

// This is a single-line comment.

/* This is a multiple-line comment. It can be of any length, and

you can put whatever you want here. */

 

http://www.w3schools.com/

 

События, cookie-файлы и таймеры
http://www.ibm.com/developerworks/ru/library/wa-javascriptstart2/index.html

Атрибут onClick может использоваться в следующих тегах HTML:

Код HTML
1234567 · <a herf=URL onClick="expr | function()">. . .</a> · <input.type="checkbox" onClick="expr | function()"> · <input.type="radio" onClick="expr | function()"> · <input.type="reset" onClick="expr | function()"> · <input.type="submit" onClick="expr | function()"> · <input.type="button" onClick="expr | function()">
 

Операторы языка JavaScript, заданные в атрибуте onClick, выполняются при щелчке мыши на таких объектах как гиперсвязь, кнопка перезагрузки формы или контрольный переключатель. Для контрольных переключателей и селекторных кнопок событие Click возникает не только при выборе элемента, но и при разблокировании.

Разберем пример использования атрибута onClick для кнопок, определенных тегами <input type="button"> в контейнере <form> . . . </form>:

Код HTML
1234567891011121314 <script language="JavaScript"><!--function but1() {alert("Вы нажали первую кнопку");}function but2() {alert("Вы нажали вторую кнопку");}//--></script><form><input type="button" value="Первая кнопка" onClick="but1()"><input type="button" value="Вторая кнопка" onClick="but2()"></form>
 

Когда пользователь щелкает мышью по кнопке, вызывается либо функция but1(), либо but2(). При этом с помощью метода alert() на экран выводится соответствующее сообщение. (я часто применяю метод alert() так, как с помощью его очень удобно демонстрировать работу той или иной программы)

Разберем использование события onClick например для контрольных переключателей. Обработка этого события здесь выполняется как при включении, так и при выключении контрольных переключателей. Для проверки состояния переключателей следует использовать свойство checked, которое содержит значение true, если переключатель включен. Рассмотрим пример:

Код HTML
1234567891011121314151617181920 <script language="JavaScript"><!--function chk1(f) {if (f.checked)alert("Первый переключатель включен");elsealert("Первый переключатель отключен");}function chk2(f) {if (f.checked)alert("Второй переключатель включен");elsealert("Второй переключатель отключен");}//--></script><form name="chkform"><input type="checkbox" checked name="c1" onClick="chk1(this.form.c1)"> Переключатель 1 <BR><input type="checkbox" name="c2" onClick="chk2(this.form.c2)"> Переключатель 2</form>
 

после передачи значения this.form.c1 или this.form.c2 в соответствующие функции. Проверяется свойство checked контрольного переключателя, переданного функции, и в зависимости от значения свойства checked срабатывает метод alert().

Обычно подобный подход применяется для сложного ввода каких-то данных, и в зависимости от установленного "флажка" предлагается заполнять соответствующие поля форм или переместить фокус в одно из полей, так как данные отслеживаются еще при вводе текущей формы.



<== предыдущая лекция | следующая лекция ==>
ОБРАЗОВАТЕЛЬНАЯ ЭКОНОМИКА АНДРЕЯ КУРБАТОВА | История языка SQL


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.087 сек.