ИнтернеттАУсервис для автотранспортных и экспедиционных компаний для оптимизации всех этапов работы: от ведения заявок/перевозок/договоров до бухгалтерии, финансового контроля и анализа

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



ipt>

...

При указании атрибута src содержимое тега игнорируется.

То есть одновременно подключить внешний файл и написать что-то внутри тега нельзя. Придется делать два разных тега : первый с src, второй - с командами, которые будут выполнены после выполнения внешнего файла.

5.1.4 Структура JAVASCRIPT

Стандарт (формальное описание синтаксиса и работы языка) javascript называется ECMAScript. На нем, кстати, основан не только javascript, но и несколько других языков, например ActionScript (Flash).

По ECMAScript есть спецификация, которая подробно описывает синтаксис, управляющие конструкции и базовые объекты языка.

Например, вот скрипт, который работает, используя только ECMAScript. Кстати, поэтому он будет работать и в других языках, основанных на ECMAScript, включая ActionScript:

max)thrownewError("failedtoreachthestars")">var max = 5{(var i=0; imax) throw new Error("failed to reach the stars")

}

} catch(e) { }

ECMAScript - и правда очень особенный язык. Особенно для тех, кто пришел из PHP, C, Java. В нем особым образом устроены объекты и функции.

Здесь мы пройдем по основным особенностям и отличиям языка.

5.1.5 Конструкции

Как и во многих языках, предложения на языке javascript можно разделять точкой с запятой.

Но при переходе на новую строку в javascript точка с запятой становится необязательна, ее можно не ставить.

Эти две строки полностью эквивалентны:

a = 5= 5;

В javascript перевод строки почти всегда подразумевает точку с запятой.

В частности, многие новички сталкиваются с ошибками при многострочных присваиваниях и вызовах.

Вот так не будет работать:

var a = "длинная

строка "

Так как перевод строки подразумевает точку с запятой. В нашем случае JavaScript сообщит о незавершенной строке (unterminated literal) в первой строчке этого примера.

Чтобы многострочные операторы работали как надо - перенос строки можно указывать обратным слэшем "\", вот так:

var a = "длинная \

строка "

\;

Блоки задаются фигурными скобками. Локальные переменные объявляются при помощи var. Причем, в отличие от C/Java, сам по себе блок не задает отдельную область видимости.

var i = 0

{i=5(i) // 5

}(i) // тоже 5

Комментарии возможны в двух вариантах // и /*...*/:

// однострочные комментарии

/*

многострочные

комментарии

*/

Переменные в javascript слабо типизированы. Это означает, что при объявлении не нужно указывать тип. Можно присвоить любой переменной любое значение.

Однако при этом интерпретатор javascript (браузер) всегда знает, какого типа значение содержит данная переменная, а значит - какие операции к ней применимы.

Переменную не обязательно объявлять. Достаточно ее просто присвоить:= 5

Функции задаются объявлением function со списком параметров:

function sayHello(name) {("Hello "+name)

}

Язык javascript предоставляет очень мощные возможности по работе с функциями.

5.1.6 Область видимости

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

Локальная переменная объявляется так:i

При объявлении можно тут же присвоить переменной значение и объявить другие переменные:

// то же самое что 3 отдельных объявления c var

var a=5, b=6, str = "Строка"

В следующем примере переменная a в функции go объявлена как локальная. Поэтому глобальное значение a=1 не изменяется в процессе выполнения go.

a = 1go() {a = 6

}

()(a) // => 1

А здесь - ключевое слово var опущено, поэтому значение меняется:

a = 1go() {= 6

}

()

alert(a) // => 6

Кстати, глобальных переменных в javascript на самом деле нет. То, что называют "глобальными" - на самом деле свойства специального объекта window. Например, в последнем примере alert(window.a) тоже выдало бы 6.

Все "глобальные" переменные привязаны к своему окну. Разные окна и фреймы имеют разные "глобальные" переменные, которыми могут обмениваться друг с другом.

Вообще, глобальных переменных в JS рекомендуется избегать, особенно при написании библиотек и компонент, которые предполагается использовать в разных приложениях.

Как правило - всё, что относится к компоненту, объявляется в виде свойств единого глобального объекта: ExtJS, dojo и т.п. Вы можете увидеть это в любом известном JS-фреймворке.

Обратите внимание, в javascript все директивы var срабатывают при входе в функцию, неважно где они находятся.

Например, посмотрим на функцию:

function cmp(a,b) {

if (a>b) {= 1

} else if (a<b) {= -1

} else {res = 0

}

res

}

При входе в функцию интерпретатор javascript находит все объявления var и создает соответствующие локальные переменные.

Поэтому в примере выше переменная res будет во всех случаях локальная. Несмотря на то, что само объявление var res находится ниже по коду, чем первое обращение к res, интерпретатор создает все переменные на этапе входа в функцию, так что эта переменная локальна.

5.1.7 Основные типы

Для объявления строк используются кавычки - простые или двойные ". Между ними нет никакой разницы.= моя= "строка"

Для конкатенации строк используется оператор +.

a = "моя"= "строка"(a + + b)

Javascript - объектный язык. В нем все является объектами. Строки, числа, функции и массивы - все это объекты со своими методами и свойствами. Это надо знать и иметь в виду с самого начала.

Методы объектов вызываются через точку. Например, у строки String есть метод toUpperCase, возвращающий строку в верхнем регистре:

name = "Vasya"( name.toUpperCase() )

Или даже так:

ale