Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


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

Синтаксис

Спецификации ECMAScript v1 и v2 предполагают использование в коде программы 7-ми битной ASCII-кодировки и использование UNICODE- символов в комментариях или строковых литералах. ECMAScript v3 позволяет использовать UNICODE в любой части программы, однако для того, чтобы исключить проблемы совместимости со старыми браузерами, этого следует избегать.

JavaScript чувствителен к регистру. Символы табуляции и перевода строк игнорируются. Однако есть одно замечание. Разделителем простых операторов является символ “;”, но не является обязательным в том случае, если операторы разделены переводом строк.

Обратите внимание на то, что следующие записи эквивалентны:

a=1;

b=3;

и

a=1

b=3

Однако запись:

return

true

является некорректной, поскольку её эквивалент:

return;

true;

Но не

return true;

Комментарии

Комментарии Javascript аналогичны языкам C и C++.

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

/* многострочный
комментарий*/

Числа

С точки зрения внутреннего представления для JavaScript все числа являются 64-х разрядными числами с плавающей точкой и описываются стандартом IEEE 754.

Все целые числа должны лежать в диапазоне от -9007199254740992 до 9007199254740992, поскольку иначе произойдёт потеря младших разрядов.

Допустимы следующие литералы:

· Десятичные целые числа (0, 234, 652345).

· Шестнадцатеричные числа (0xF 1, 0xfe340b).

· Вещественные числа ([цифры][.цифры][(Е|е)[(+|_)]цифры]).

При работе с числами доступны все традиционные арифметические операции. Кроме того, отметим, что существуют специальные константы Infinity, NaN, Number.MAX_VALUE и некоторые другие, которые могут быть использованы в арифметических операциях.

 

Строки

Строки являются объектами класса String.

Строковый литерал - это последовательность из нуля или более Unicode- символов, заключенная в одинарные или двойные кавычки (' или ").

Строка может содержать специальные управляющие символы такие как: \n, \b, \0, \xXX, \xXXXX и некоторые другие.

При работе со строками доступны операции конкатенации:

str = "123" + "456"

Для определения длины строки можно использовать свойство length:

str.length

Извлечение подстроки производится методом substring (первая позиция, количество). Нумерация символов - с нуля.

substr = str.substring(2,5);

Метод indexOf определяет позицию первого символа в указанной строке s:

i = str.indexOf('a');

 

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

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

var n = 10

str = n + " получено в результате";

str = n.toString() + " получено в результате";

Если формат вывода необходимо четко определить, могут быть использованы дополнительные методы:

var n = 123456.789;

n.toFixed(0);   // "123457"

n.toFixed(2);   // "123456.79"

n.toExponential(1); // "1.2e+5"

n.toExponential(3); // "1.235e+5"

n.toPrecision(4); // "1.235e+5"

n.toPrecision(7); // "123456.8"

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

Javascript может явно преобразовать строки в числа, если это следует из контекста.

Пример:

var n = "12"*"2" // результат 24

Однако это не сработает в случае:

var n = "12" + "2" // результат "122", поскольку + является конкатенацией

Для решения этой проблемы может быть использован класс Number(), однако требование его использования заключается в том, что число должно быть обязательно десятичным.

Функции parseInt() и parseFloat() позволяют организовать разбор чисел из строки, содержащей не только цифры. Однако, если на первом месте в строке будет находиться не цифра, то возвращенный ими результат будет NaN (не число).

Функция в форме parseInt(str, base) позволяет разобрать числа в указанной base- системе счисления.

Некоторые примеры:

parseInt("3 слепых мышки"); // Вернет 3

parseFloat("3.14 метров"); // Вернет 3.14

parseInt("12.34"); // Вернет 12

parseInt("0xFF"); // Вернет 255

parseInt("11", 2); // Вернет 3 (1*2 + 1)

parseInt("ff", 16); // Вернет 255 (15*16 + 15)

parseInt("zz", 36); // Вернет 1295 (35*36 + 35)

parseInt("077", 8); // Вернет 63 (7*8 + 7)

parseInt("077", 10); // Вернет 77 (7*10 + 7)

 

Логические операции

Логический тип имеет значения true или false аналогично boolean в C++. Поддерживается почти аналогичный набор логических операций.

Пример:

if (a == 4)

b = b + 1;

else

a = a + 1;

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

if (a === "4")   // только строки!

b = b + 1;

if (a === 0)      // только число 0

b = b + 1;

if (a == 0)         // число 0 или пустая строка

b = b + 1;.

Имеющиеся операторы сравнения представлены в таблице 1. Для определённости примем, что предварительно выполнено присвоение x=5.

 

Оператор Описание Пример (x=5) Результат
  Равенство x==8 x==5 false true
  Равенство с учетом типа x==="5" x===5 false true
! = Неравенство x!=8 true
!== Неравенство с учетом типа x!=="5" x!==5 true false
> Больше x>8 false
< Меньше x<8 true
>= Больше или равно x>=8 false
<= Меньше или равно x<=8 true

 

 

Поддерживаются следующие выражения, позволяющие организовать ветвление процесса:

if (condition) {

} else {

}

variablename=(condition)?value1:value2

switch(n)

{

case 1:

execute code block 1

break;

case 2:

execute code block 2

break;

default:

code to be executed if n is different from case 1 and 2

}

Циклы

Выражения для формирования циклов в Javascript аналогичны C/C++ за исключением конструкции for (item in list){...}.

for (i=0; i<5; i++) {

x=x + "The number is ” + i + ”<br />”;

}

while (i<5)        {

x=x + "The number is " + i + "<br />";

i++;

}

do {

x=x + "The number is " + i + "<br />";

i++;

} while (i<5);

var person={fname:"John",lname:"Doe",age:25};

for (x in person) { txt=txt + person[x]; }

 

Функции

Функции в Javascript задаются в форме:

function sum (a,b)         // декларируем функцию sum с двумя аргументами

{

return a+b;

}

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

Существует возможность определить функциональный литерал в следующей форме:

var sum = function sum (a,b)     { return a+b; };

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

 

Объекты

Объект - это коллекция именованных значений, которые обычно называют свойствами (properties) объекта. Важно то, что в Javascript свойства объекта могут быть добавлены при выполнении.

Пример:

var point = new Object(); // создаём пустой объект!!!

point.x = 2.3;  // присоединяем свойство x

point.y = 1.2;  // присоединяем свойство y

Обращение к свойствам может производиться либо в форме:

point.x

либо в форме ассоциативного массива:

point["x"]

Объектные литералы позволяют задавать значения объектов в коде. Объектные литералы могут быть простыми:

var point = { x:2.3, y:1.2 };

или вложенными:

var rectangle = {

upperLeft: { x: 2, y: 2 }, lowerRight: { x: 4, y: 4 }

};

Любой объект может быть преобразован в строку вызовом метода toString().

 

Массивы

Массивы, как и объекты, являются коллекциями значений, но важное отличие состоит в том, что каждый из элементов имеет номер. Нумерация элементов в Javascript начинается с нуля, как и в C. Объект-массив создается при помощи конструктора Array().

Пример массива, элементы которого произвольны:

var a = new Array();

a[0]   =        1.2;

a[1]   =        "JavaScript";

a[2]   =        true;

a[3]   =        { x:1, y:3     };

Инициализация массива при создании:

var a = new Array(1.2, "JavaScript", true, { x:1, y:3 });

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

var a = new Array(10);

Литерал массива - это список разделенных запятыми значений, заключенных в квадратные скобки. Допустима инициализация массива с разнородными объектами:

var a = [1.2, "JavaScript", true, { x:1, y:3 }];

Инициализация двумерного массива:

var matrix = [[1,2,3],     [4,5,6], [7,8,9]];

Инициализация массива динамически вычисленными значениями:

var base = 1024;

var table = [base, base+1, base+2, base+3];



<== предыдущая лекция | следующая лекция ==>
Результаты измерения погрешности половины угла профиля | Переменные и их области видимости
Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 288 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Либо вы управляете вашим днем, либо день управляет вами. © Джим Рон
==> читать все изречения...

2227 - | 1965 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.