Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Логические операторы

Мантисса меньше единицы и первая значащая цифра — не ноль. | Работа с числами | Работа со строками | Преобразование строк в числа | Побитовые (поразрядные)операторы | Побитовые операторы сдвига | Открытые и закрытые процедуры | Многомерные массивы | Открытые параметры-массивы |


Читайте также:
  1. Cоциальные, экономические, политические, идеологические причины возникновения профессиональной PR-деятельности.
  2. I. Психологические и поведенческие техники, подготавливающие к увеличению продолжительности жизни.
  3. VII. ПСИХОЛОГИЧЕСКИЕ ИНДИКАТОРЫ
  4. Алгебра логики. Элементарные логические операции. Таблицы истинности.
  5. Б) Топливо и энергия на технологические цели (по видам)
  6. Биологические антимутационные механизмы . реперация днк
  7. Биологические и хоз. Особенности свиней

Пример

Следующий код, реализующий глобальный поиск, находит все числа в строке:

"1 plus 2 equals 3".match(/\d+/g) // Возвращает ["1", "2", "3"]

 

· replace(regexp, замена) - Выполняет операцию поиска и замены с помощью регулярного выражения.

Метод replace() выполняет операцию поиска и замены для строки. Он ищет в строке одну или несколько подстрок, соответствующих регулярному выражению regexp, и заменяет их значением аргумента замена. Если в regexp указан глобальный атрибут g, replace() заменяет все найденные подстроки. В противном случае метод заменяет только первую найденную подстроку. Параметр замена может быть либо строкой, либо функцией. Если это строка, то каждое найденное соответствие заменяется указанной строкой.

 

· search(regexp) - Ищет в строке подстроку, соответствующую регулярному выражению. Метод search() ищет подстроку в строке, соответствующую регулярному выражению regexp, и возвращает позицию первого символа найденной подстроки или 1, если соответствие не найдено. Метод не выполняет глобального поиска, игнорируя флаг g. Он также игнорирует свойство regexp.lastIndex и всегда выполняет поиск с начала строки, следовательно, всегда возвращает позицию первого соответствия, найденного в строке.

Пример

var s = "JavaScript is fun";

s.search(/script/i) // Возвращает 4

s.search(/a(.)a/) // Возвращает 1

 

· slice(start, end) - Возвращает фрагмент строки или подстроку в строке. Метод slice() возвращает строку, содержащую фрагмент, или подстроку строки, но не изменяет строку. Методы slice(), substring() и признанный устаревшим метод substr() объекта String возвращают части строки. Метод slice() более гибок, чем substring(), поскольку допускает отрицательные значения аргументов. Метод slice() отличается от substr() тем, что задает строку с помощью двух символьных позиций, а substr() использует одно значение позиции и длину.

 

· split(разделитель, лимит) - Разбивает строку на массив строк по указанной строке-разделителю или регулярному выражению. Разделитель - с трока или регулярное выражение, по которому разбивается строка. Лимит – это н еобязательное целое, задающее максимальную длину полученного массива. Если этот аргумент указан, то количество возвращенных подстрок не будет превышать указанное. Если он не указан, разбивается вся строка независимо от ее длины. Возвращаемое значение – это м ассив строк, создаваемый путем разбиения строки на подстроки по границам, заданным разделителем.

Пример Метод split() наиболее полезен при работе с сильно структурированными строками:"1:2:3:4:5".split(":"); // Возвращает ["1","2","3","4","5"]

 

"|a|b|c|".split("|"); // Возвращает ["", "a", "b", "c", ""]

· substr(начало, длина) - Извлекает подстроку из строки. Аналог метода substring().Метод substr() извлекает и возвращает подстроку строки. метод substr() задает нужную подстроку с помощью позиции символа и длины.

 

· substring() - Извлекает подстроку из строки. Аргументы от - ц елое, задающее позицию первого символа требуемой подстроки внутри строки. До - Необязательное целое, на единицу большее позиции последнего символа требуемой подстроки. Если этот аргумент опущен, возвращаемая подстрока заканчивается в конце строки. Возвращаемое значение - н овая строка длиной доот, содержащая подстроку строки. Новая строка содержит символы, скопированные из строки, начиная с позиции от и заканчивая позицией до –1. В отличие от методов String.slice() и String.substr(), String.substring() не может принимать отрицательные значения аргументов.

 

 

· toLowerCase() - Возвращает копию строки, в которой все символы переведены в нижний регистр.

 

· toString() - Возвращает элементарное строковое значение. Еесли метод вызывается для объекта, не являющегося объектом String то генерируется ошибка TypeError.

 

 

· toUpperCase() - Возвращает копию строки, в которой все символы переведены в верхний регистр.

 

· valueOf() - Возвращает элементарное строковое значение. Если метод вызывается для объекта, не являющегося объектом String то генерируется ошибка TypeError.

 

5. Арифметические и логические операции. Примеры их использования.

Арифметические операции:

Рассмотрим арифметические операции на примере языка JavaScript.

· Операция Сложение (+)

Оператор «плюс» складывает числовые операнды или выполняет конкатенацию строк. Если одним из операндов является строка, другой операнд преобразуется в строку и выполняется конкатенация. Операнды-объекты преобразуются в числа или строки, которые могут быть сложены или конкатенированы.Преобразование выполняется с помощью методов valueOf() и/или toString().

 

· Вычитание (-)

Когда «минус» используется в качестве двухместного оператора, он выполняет вычитание второго операнда из первого. Если указаны нечисловые операнды, то оператор пытается преобразовать их в числа.

· Умножение (*)

Оператор * умножает два своих операнда. Нечисловые операнды он пытается

преобразовать в числа.

· Деление (/)

Оператор / делит первый операнд на второй. Нечисловые операнды он пытается преобразовать в числа. Те, кто привык к языкам программирования, различающим целые и вещественные числа, могут ожидать получения целочисленного результата при делении одного целого на другое. Однако в JavaScript все числа вещественные, поэтому результатом любого деления является значение с плавающей точкой. Операция 5/2 дает 2.5, а не 2. Результат деления на ноль – плюс или минус бесконечность, а 0/0 дает NaN.

· Деление по модулю (%)

Оператор % вычисляет остаток, получаемый при целочисленном делении первого операнда на второй. Если заданы нечисловые операнды, то оператор пытается преобразовать их в числа. Знак результата совпадает со знаком первого операнда, например 5 % 2 дает 1. Оператор деления по модулю обычно применяется к целым операндам, но работает и для вещественных значений. Например, -4.3 % 2.1 дает результат -0.1.

· Унарный минус (_)

Когда минус используется в качестве унарного оператора, он указывается пе_

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

Другими словами, он преобразует положительное значение в отрицательное,

и наоборот. Если операнд не является числом, этот оператор пытается преоб_

разовать его в число.

· Унарный плюс (+)

Для симметрии с оператором «унарный минус» в JavaScript также имеется оператор «унарный плюс». При помощи этого оператора можно явно задать знак числовых литералов, если вы считаете, что это сделает текст программы более понятным:

var profit = +1000000; В таком коде оператор «плюс» ничего не делает; результатом его работы является значение его аргумента. Однако нечисловые аргументы он преобразует в числа. Если аргумент не может быть преобразован, возвращается NaN.

· Инкремент (++)

Этот оператор инкрементирует (т. е. увеличивает на единицу) свой единственный операнд, который должен быть переменной, элементом массива или свойством объекта. Если значение этой переменной, элемента массива или свойства не является числом, оператор сначала пытается преобразовать его в число. Точное поведение этого оператора зависит от его положения по отношению к операнду. Если поставить его перед операндом (префиксный оператор инкремента), то к операнду прибавляется 1, а результатом является увеличенное значение операнда. Если же он размещается после операнда (постфиксный оператор инкремента), то к операнду прибавляется 1, однако результатом является первоначальное значение операнда. Если увеличиваемоезначение не является числом, оно в процессе вычисления преобразуется в число. Например, следующий код делает переменные i и j равными 2:

i = 1;

j = ++i;

А этот устанавливает i в 2, а j в 1:

i = 1;

j = i++;

 

· Декремент (--)

Противоположный инкременту оператор.

Этот оператор декрементирует (т. е. уменьшает на 1) свой единственный числовой операнд, который может представлять собой переменную, элемент массива или свойство объекта. Если значение этой переменной, элемента или свойства не является числом, оператор сначала пытается преобразовать его в число. Как и для оператора ++, точное поведение оператора -- зависит от его положения относительно операнда. Будучи поставленным перед операндом, он уменьшает операнд и возвращает уменьшенное значение, после операнда - уменьшает операнд, но возвращает первоначальное значение.

 

Оператор Описание Пример
% (Модуль) Бинарный оператор. Возвращает целый остаток деления двух операторов 12 % 5 возвращает 2
++ (Инкремент) Унарный оператор. Добавляет единицу к операнду. Если используется как префиксный оператор (++x), возвращает значение операнда после прибавления единицы; при использовании как постфикс оператор (x++) возвращает значение операнда до прибавления единицы. Если x равен 3, ++x устанавливает x равным 4 и возвращает 4, x++ возвращает 3 и только после этого устанавливает x равным 4.
-- (Декремент) Унарный оператор. Вычитает единицу из своего операнда. Возвращаемое значение аналогично оператору инкремента. Если x равен 3, --x устанавливает x равным 2 и возвращает 2; x-- возвращает 3 и только после этого устанавливает x равным 2.
- (Унарное отрицание) Унарный оператор. Возвращает отрицание операнда. Если x равен 3, -x возвращает -3.

 

 

Логические операторы

Логические операторы обычно используются с булевыми (логическими) значениями; при этом они возвращают логическое значение. Однако операторы && и || обычно возвращают значение одного из заданных операндов, так что если эти операторы используются с не булевыми значениями, то они могут возвратить результат не булевого типа. Логические операторы описаны в следующей таблице.

Таблица 0.3.6.1 Логические операторы

Оператор Использование Описание
&& expr1 && expr2 Логическое И. Возвращает expr1, если оно может быть преобразовано в false; в противном случае возвращает expr2. Таким образом, при использовании с булевыми значениями, && возвращает true если оба операнда являются true; в противном случае возвращается false.
     
|| expr1 || expr2 Логическое ИЛИ. Возвращает expr1 если этот операнд может быть преобразован в true; в противном случае возвращает expr2. При использовании с булевыми значениями || возвращает true если какой-либо из операндов равен true; если оба операнда равны false, возвращает false.
     
! !expr Логическое НЕ. Возвращает false если его единственный операнд может быть преобразован в true; в противном случае возвращает true.
     

Выражения, которые могут быть преобразованы в false, это выражения, которые могут принимать значения null, 0, пустая строка ("") или undefined.

 

 

6. Числовые, символьные, логические типы данных: описание, внутреннее представление. Арифметические, логические и поразрядные операции. Стандартные процедуры и функции для простых типов данных. Преобразование типов. Примеры.

Представление чисел в разных языках программирования отличается. В некоторых языках программирования (например JavaScript) нет различия между целыми и вещественными значениями. Все числа в JavaScript представляются 64-разрядными вещественными значениями (с плавающей точкой), формат которых способен представлять числа от ±1,7976931348623157 × 10308 до ±5 × 10-324.

Число, находящееся непосредственно в коде JavaScript-программы, называется числовым литералом.

В JavaScript целые десятичные числа записываются как последовательность

цифр. Например:

 

Шестнадцатеричные литералы начинаются

с последовательности символов «0x» или «0X», за которой следует строка шестнадцатеричных цифр.

0xff // 15*16 + 15 = 255 (по основанию 10)

0xCAFE911

 

Хотя стандарт ECMAScript не поддерживает представление целых литералов в восьмеричном формате (по основанию 8), некоторые реализации JavaScript допускают подобную возможность. Восьмеричный литерал начинается с цифры 0, за ней следуют цифры, каждая из которых может быть от 0 до 7.

Например:

0377 // 3*64 + 7*8 + 7 = 255 (по основанию 10)

 

Литералы вещественных чисел должны иметь десятичную точку; в них используется традиционный синтаксис вещественных чисел.

3.14

Но литералы вещественных чисел могут также представляться в экспоненциальной форме:

[ цифры ] [. цифры ] [(E|e)[(+|-)] цифры ]

Например:

6.02e23 // 6.02 X 1023

1.4738223E-32 // 1.4738223 X 10-32

 

В ActionScript 3.0 Числовой тип включает три специфических типа числовых данных:

§ Number: любые целые или дробные числовые значения

§ int: целые числа без дробей

§ uint: беззнаковые (не отрицательные) целые числа

 

Исторически числа при описании вычислений на компьютере принято делить на целые (integer) и действительные (real), или числа с плавающей точкой (floatingpoint). Первому типу соответствуют литералы, образованные только цифрами (например, 122 или -896), второму — цифрами и десятичной точкой (5.8905 или 0.9067). Раньше такое деление было оправданно ввиду крайней ограниченности ресурсов компьютеров (целые числа требовали меньше памяти, чем числа с плавающей точкой). Современные машины достигли достаточной мощности, чтобы во всех случаях можно было использовать тип представления floating-point. Поэтому, для простоты, в ActionScript не существует типов real и integer, а все числа относятся к типу number, которому соответствуют 64-битные числа с плавающей точкой. Различие же между целыми числами и числами с дробной частью исключительно визуальное.

Некоторые операторы и функции языка могут работать только с целыми числами (int и uint). Так как к типу number относятся числа с плавающей точкой, то для обеспечения корректной работы этих инструментов языка существуют внутренние методы, проводящие преобразования в 32-битные и 16-битные целые числа. Таким образом, разделение на целые числа и числа с плавающей точкой в ActionScript все же имеется, но только на уровне реализации.

 

Существуют два способа представления чисел в памяти ЭВМ. Они называются так: форма с фиксированной точкой и форма с плавающей точкой. Форма с фиксированной точкой применяется к целым числам, форма с плавающей точкой — к вещественным числам (целым и дробным). Под точкой здесь подразумевается знак-разделитель целой и дробной части числа.

 


Дата добавления: 2015-08-20; просмотров: 69 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Риски и опасности| Целые отрицательные числа.

mybiblioteka.su - 2015-2024 год. (0.014 сек.)