Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Дополнительные операторы присваивания



Кроме оператора присваивания “=” в JavaScript существуют другие операторы, совмещающие присваивание и какую-то другую операцию. Например, оператор “+=” складывает и присваивает, его можно интерпретировать как «увеличить значение на».

Пример. Результаты выполнения следующих двух инструкций будут одинаковыми:

sum += 10;

sum = sum + 10;

Кроме “+=” определены следующие операторы: “-=”, “*=”, “/=”, “%= ”.

Пример. Следующие пары инструкций являются эквивалентными: X +=Z; X = X + Z;

X -= Z; X = X – Z;

X *= Z; X = X * Z;

X /= Z; X = X / Z;

X % = Z; X = X % Z;

Операторы сравнения

Перечислим допустимые в JavaScript операторы сравнения, которые используются, как правило, в условных операторах if и циклах, и возвращают логическое значение true или false как результат сравнения:

Оператор == === ! = ! == > > = < < = Название Равно Идентично (эквивалентно) Не равно Не идентично Больше Больше или равно (не меньше) Меньше Меньше или равно (не больше) Пример X = =Y X ===Y X! =Y X! ==Y X > Y X > = Y X < Y Х< = Y

Обратите внимание, что равенство двух величин определяется оператором ==, а идентичность (эквивалентность) - оператором ===. Оператор идентичности использует более строгие правила для определения совпадения.

Рассмотрим, например, логическое выражение true = = " 1";

Результатом его выполнения будет значение true: несмотря на то, что операнды выглядят по-разному, их значения одинаковы. Выполняется преобразование логического значения true в число 1, строки " 1" в число 1. Числа совпадают, поэтому результат сравнения - true.

Примечание. 1.Два массива, содержащие равные или идентичные элементы, никогда не будут равными или эквивалентными.

2. Две переменные, содержащие в качестве значения ссылки на массив, функцию или объект, равны только в том случае, если ссылка происходит на один и тот же массив, функцию или объект.

3. Сравнение строковых значений производится посимвольно, с учетом регистра символов. Используются числовые значения каждого из символов в кодировке Unicode. Прописные буквы «меньше» строчных букв.

Операторы работы с логическими значениями

При выполнении операций булевой алгебры обычно используются логические операторы. Чаще всего они применяются в сочетании с операторами сравнения в условном операторе if, операторах цикла for, while, и do while.

& & - логическое «и»: данный оператор возвращает true тогда и только тогда, когда оба операнда имеют значение true. Когда хотя бы один операнд равен false, оператор вернет false.

|| - логическое «или»: данный оператор возвращает true, если хотя бы один операнд равен true, false возвращается только в том случае, если оба операнда равны false.

Ниже приведена так называемая таблица истиности для операторов логическое «и» и логическое «или»:

А В А & & В А || В
truе truе fаlsе fаlsе truе fаlsе truе fаlsе truе fаlsе fаlsе fаlsе truе truе truе fаlsе

! - логическое «не»: этоунарный оператор, инвертирующий значение того операнда, перед которым установлен. Например, если значением переменной х является true (или преобразуемое в true), то значением выражения! х будет false.

Примечание. Применив оператор логическое «не» дважды (!! x) можно значение любого типа преобразовать в логическое.

Присвоение имен переменным

Можно считать переменную контейнером, в котором хранятся данные. Хранимые в переменной данные называются ее значениями.

Переменная обладает именем — последовательностью букв, цифр и символа подчеркивания, в которой не должно быть пробелов и знаков препинания. Начинаться имя переменной обязательно должно буквой или символом подчеркивания. Нельзя в качестве имени переменной использовать ключевые слова, являющиеся частью конструкций языка.

Пример.

New_array, _adress, x334455Pole, telephon_465_73 - правильные имена переменных;

1group, x334455 Pole, telephon: _545_1, while - неправильные имена переменных;

Существует несколько способов создания переменной в коде программы:

с помощью оператора присваивания, например:

myCity = " Саратов"; count=0;

С использованием ключевого слова var (variable), например

var my_telephon;

При таком способе переменная создана, но не инициализирована (не присвоено начального значения).

- С использованием ключевого слова var вместе с оператором присваивания:

var my_telephon=”23-98-67”;

Ключевое слово var может использоваться при инициализации одновременно нескольких переменных, с присваиванием начального значения и без присваивания:

var my_telephon=”23-98-67”, my_name, my_address, sum = 1024;

Если начального значения не задано, ее значением считается undefined (неопределенное), в дальнейшем в коде программы значение можно изменить.

От того, что переменная создана с использованием или без использования ключевого слова var, зависит ее область видимости.

В том случае, если переменная создана без использования ключевого слова var, она считается глобальной. Такая переменная определена для всего кода программы JavaScript.

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

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

Примечание. В отличие от языков Java, C, C++, в JavaScript нет областей видимости на уровне блоков, то есть нельзя «запереть» переменную только в цикле или условном операторе. Если переменную объявить внутри функции, она будет определена во всей функции.

Преобразование числа в строку

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

number_string = number + " ";

Во время выполнения кода происходит по мере необходимости автоматическое преобразование чисел в строковые значения. Скажем, если выполняется конкатенация строк, а число используется в операции, оно преобразуется в строку:

var number = 100;

var prowerb = " Не имей " +n + " рублей, а имей" +n+" друзей";

Чтобы явно преобразовать число в строку, используют функцию String(), например:

var string_var = String(число);

Для преобразования числового значения в строковое также можно использовать метод toString(), определенный для объекта Number, в котором можно указать необязательный аргумент, определяющий основание системы счисления, в которой происходит преобразование. По умолчанию используеся основание 10, например:

var string_var = number.toString();

var number = 21;

string _2 = number.toString(2); // вернет " 10011"

string _8= " 0" + number.toString(8); // вернет " 025"

string_16 = " 0x" + number.toString(16); // вернет " 0x15"

Преобразование строки в число

В JavaScript для преобразования строки в число имеются встроенные функции parseInt() и parseFloat().

Функция parseInt(строка, основание_системы_счисления) служит для преобразования указанной в качестве параметра строки в целое число с учетом указанной вторым аргументов системы счисления (8-ричной, 10-тичной или 16-ричной). По умолчанию предполагается десятеричная система счисления. Результатом всегда будет значение в десятеричной системе счисления.

Пример.

parselnt(" 6.78996" ) // возвратит 6

parselnt(" -9.003" ) // возвратит -9

parselnt(" Привет! " ) // возвратит NaN, то есть не число

parselnt(" 17" , 8) // возвратит 15

parseInt(" 0xAF", 16) // возвратит = 175

Округления при преобразовании строки в целое число не производится, дробная часть отбрасывается.

Функция parseFloat(строка) служит для преобразования указанной в качестве параметра строки в число с десятичной точкой.

Примеры

parseFloat (" 6.78996" ) // возвратит 6.78996

parseFloat (" -9.003" ) // возвратит (" -9.003

parseFloat (" Привет! " ) // возвратит NaN, то есть не число

При необходимости определения точного количества знаков после десятичной точки при преобразовании числа в строку, можно воспользоваться методом toFixed() класса Number, например:

var num = 987.6543;

num.toFixed(0); // возвратит " 987"

num.toFixed(2); // возвратит " 987.65"

У класса Number имеется также метод toExponential(), преобразующий число в экспоненциальном представлении, имеющем один знак перед точкой и заданное число десятичных знаков после десятичной точки:

var num = 987654.321;

num.toExponential(1); // " 9.8e+5"

num.toExponential(3); // " 9.75e+5"

Функции в JavaScript

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

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

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

При написании программы на JavaScript можно использовать как встроенные функции, являющиеся заранее определенными, код которых посмотреть или отредактировать нельзя, так и определенные самим пользователем.

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

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

function rectangle(w, h) // Имя функции: rectangle, она принимает два аргумента

{ // Начало тела функции

return w*h; // Функция перемножает аргументы и возвращает результат

} // Конец тела функции

 

Если функция не имеет параметров, то после имени функции идут пустые круглые скобки.

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

Примеры вызовов функций.

t= Math.cos(grad);

S = rectangle (20, 15);

my_ sum= s_square(x1, y1, x2, y2, x3, y3, x4, y4);

today();

 

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

Следует учитывать, что оператор returnпрерывает выполнение функции и возвращает исполнение кода по месту вызова функции. Ключевое слово returnможно указывать в теле функции не один раз или вообще не указывать. В последнем случае функция не вернет никакого значения.

Если инструкцию return использовать без указания возвращаемого значения, то она просто прервет выполнение функции.

Реализации языка JavaScript содержат большое число готовых встроенных функций. Познакомимся с некоторыми из них.

eval(строка) — воспринимает указанную в качестве аргумента строку как инструкцию JavaScript и выполняет ее.

Пример.

var x = 7;

var y = " if(x< 10) {x = x+2}"; // y содержит строку символов

eval(y); // код выполнился, значение у равно 9

escape(строка) — возвращает содержимое строки в виде %ХХ, где ХХ — код АSСII каждого символа; такая строка называется escape-последовательностью.

unescape(строка) — совершает преобразование, обратное функции escape().

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

Пример.

еsсаре(" Ноw dо yоu dо" ); // значением будет " Ноw%20dо%20yоu%20dо"

unescape(" Ноw%20dо%20yоu%20dо" )); // значением будет " Ноw dо yоu dо"

Объекты в JavaScript

Объектом в JavaScript является это коллекция именованных значений, называемых свойствами (properties). Для того, чтобы обратиться к свойству объекта, нужно указать имя объекта, точку и название свойства. Например, существует объект под названием picture, и он имеет свойство src, можем обратиться к этому свойству таким образом:

picture. src;

Имеется большое сходство между свойствами объектов и переменными: в них может содержаться любой тип данных, не исключая массивыов, функций и других объектов.

Создать объекты можно, вызывая специальные функции-конструкторы. Примеры создания новых объектов:

var overt = new Оbject();

var b_d = new Date();

var arr= new Array(10);

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

var роint = nеw Оbject();

роint.x = 4.6;

роint.y = 5.8;

Рассмотрим некоторые операторы, предназначенные для работы с объектами.

Оператор in

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

vаr point = { x: 3, y: 5 }; // определили объект

vаr has_x_cооrd = " x" in point; // значение true

vаr has_y_cооrd = " y" in point; // значение true

vаr has_z_сооrd = " z" in point; // значение false

vаr ts = " tоString" in роint; // значение true, т.к. свойство унаследованное

Оператор instanceof

При использовании оператора instanceof требуется, чтобы левый операнд был объектом, а правый – именем класса объектов. Оператора в результате даст true, если левый объект является экземпляром класса, имя которого является правым операндом, результатом будет false в противном случае.

Следует учитывать, что все объекты являются экземплярами класса Оbjесt.

Пример.

var day = new Date(); // с помощью конструктора cоздан новый объект

k=day instanceof Dаtа; // k равно true

k=dаy instаnсеоf Object; // k равно truе

k=day instanceof Number; // k равно false

Условный оператор «?: »

Данный оператор является единственным оператором с тремя операндами в JavaScript, его иногда называют тернарным оператором.

Записывается он таким образом:

(условие)? второй операнд: третий операнд

Условие должно быть логическим значением, остальные операнды могут быть любыми. Условный оператор вернет второй операнд, если условие равно true, и вернет третий операнд, если условие дает false.

Такой же результат получают при использоваии инструкции if, но тернарный оператор?: часто оказывается удобнее из=за компактного представления, и даже может быть использован в составе выражения.

Пример. Проверяется, была ли переменная определена. Если была, то используется ее значение, если нет, используется значение there:

grееting = " hеllо" + ((name_user! = null)? name_user: " thеrе" );

Если записать то же самое с помощью конструкции if, получим следующее:

grееting = " hеllо ";

if (name_user! = null) {greeting += username }

else {grееting += " thеrе"; }

Оператор tyреоf

Оператор typeof является унарным, единственный операнд может быть любого типа. Его значением будет строка, указывающая тип данных операнда: " string" (строка), " number" (число) или " boolean" (логическое значение).

Результатом для объекта, массива и значения null будет строка " оbjеct", для функции - строка " funсtiоn".

Можно операнд typeof заключать в круглые скобки, тогда typeof выглядит вызов функции: typeof(arr);

Пример.

(tyреоf vаluе == " string" )? " '" + vаluе + " '" : vаluе;

аlеrt(tyреоf(3.14)) //вернет “number”

Оператор nеw

С помощью оператора new создают новые объекты и вызывают функцию-конструктор для их инициализации:

nеw функция-конструктор(аргументы);

Пример.

rain = new Object; // необязательные скобки опущены

day = new Date(); // считываются показания системного времени

core = new Oval(5, 8.1, 300); // cоздаy объект класса Oval

Инструкции в Java Script

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

Самый простой вид инструкции в JavaScript – это уже известный нам оператор присваивания. Например:

stroke = " Hello " + name+"! " ;

ink += 15;

В JavaScript существует способ объединения нескольких инструкций в одну инструкцию или в блок инструкций. Это делается простым заключением любого количества инструкций в фигурные скобки.

Таким образом, следующие строки рассматриваются как одна инструкция и могут использоваться везде, где интерпретатор JavaScript требует наличия единственной инструкции:

{ x = Math.PI;

y = Math.cos(x);

alert(" cos(" + x + " ) = " + y); }

Следует учитывать, что сам блок инструкций не заканчивается точкой с запятой, хотя он и работает как единая инструкция. Выполняя блок инструкций, интерпретатор JavaScript выполняет по порядку расположенные в нем инструкции.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-09; Просмотров: 602; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.082 с.)
Главная | Случайная страница | Обратная связь