num_str

advertisement
Методы работы с числами в JavaScript
Представление чисел в JS:
• десятичная запись: alert( 255 );
• шестнадцатиричная запись:
alert( 0xFF ); // 255 в шестнадцатиричной системе
• запись в «научном формате»:
alert( 3e5 ); // 300000 или 3*10^5
alert( 3e-5 ); // 0.00003 или 3*10^(-5)
Плюс и минус бесконечность :
alert( 1 / 0 ); // Infinity
alert( 12345 / 0 ); // Infinity
Infinity — особенное численное значение, которое ведет себя в
точности как математическая бесконечность. Бывает и минус
бесконечность -Infinity:
alert( -1 / 0 ); // -Infinity
Метод isFinite(n) - преобразует аргумент к числу и
возвращает true, если это не NaN/Infinity/-Infinity:
alert( isFinite(1) ); // true
alert( isFinite(Infinity) ); // false
alert( isFinite(NaN) ); // false
Явное преобразование унарным ‘+’:
var s = "12.34";
alert( +s ); // 12.34
alert( +"12test" ); // NaN, т.к. строка не является полностью числом
Примечание:
• Пустая строка становится нулем
alert( +"" ); // 0
•Пробельные символы игнорируются
alert( +" \n34 \n" ); // 34
Методы parseInt(strVal) и parseFloat(strVal) – мягкое
преобразование. Преобразует строку в число пока это
возможно
alert( parseInt('12px') ); // 12, ошибка на символе 'p'
alert( parseFloat('12.3.4') ); // 12.3, ошибка на второй точке
Методы возвращают NaN, если первый символ строки не является
числом:
alert( parseInt('a123') ); // NaN
Проверка на число – метод isNaN(testValue)
var i="abc";
if( isNaN (i))
alert( "is NaN " ); // is NaN
else alert( "is Number" ); // is Number
Примечание:
• пустая строка и пробельные символы преобразуются к нулю
• метод «считает» false, true и null числами
Для выполнения математических действий над числами
используются методы объекта Math. Некоторые из них:
Math.abs(x)
Возвращает абсолютное значение числа.
Math.acos(x)
Возвращает арккосинус числа
Math.asin(x)
Возвращает арксинус числа
Math.asinh(x) Возвращает гиперболический арксинус числа
Math.atan(x)
Возвращает арктангенс числа
Math.atanh(x) Возвращает гиперболический арктангенс числа
Math.cbrt(x)
Возвращает кубический корень числа
Math.ceil(x)
Возвращает наименьшее целое число, большее, либо
равное указанному числу
Math.log(x)
Возвращает натуральный логарифм числа (loge, также
известен как ln)
Math.sqrt(x)
Возвращает положительный квадратный корень числа
Math.sin(x)
Возвращает синус числа
Math.tan(x)
Возвращает тангенс числа
И т.д.
Примеры:
Примечание: так как методы объекта Math статические, то их нельзя
вызывать на созданном экземпляре объекта Math (т.к. Math не является
конструктором)
Модуль числа:
alert (Math.abs('-1')); // 1, неявное преобразование строки к числу
alert (Math.abs(-2)); // 2
Кубический корень:
alert (Math.cbrt(8)); // 2
alert(Math.cbrt(-1)); // -1
Округление числа:
alert(Math.ceil(.95)); // 1
alert(Math.ceil(4)); // 4
Арккосинус числа:
alert(Math.acos(-2)); // NaN
alert(Math.acos(-1)); // 3.141592653589793
Методы работы со строками в JavaScript
Строки создаются при помощи двойных или одинарных кавычек:
var text = "моя строка";
var anotherText = 'еще строка';
var str = "012345";
В JavaScript нет разницы между двойными и одинарными кавычками.
Длина length
var str = "My\n"; // 3 символа. Третий - перевод строки
alert( str.length ); // 3
Доступ к символам
Чтобы получить символ, используйте
вызов charAt(позиция). Первый символ имеет позицию 0:
var str = "JavaScript";
alert( str.charAt (0) ); // “J"
Для доступа к строкам можно использовать операцию [],
однако если строка пуста, то она возвращает undefined:
alert( "".charAt(0) ); // пустая строка
alert( "" [0] ); // undefined
Содержимое строки в JavaScript нельзя изменять.
Нельзя взять символ посередине и заменить его. Как
только строка создана — она такая навсегда
Можно лишь создать целиком новую
строку и присвоить в переменную
вместо старой, например:
var str = “string";
str = str[3] + str[4] + str[5];
alert( str ); // ing
Смена регистра
Методы toLowerCase() и toUpperCase() меняют регистр строки на
нижний/верхний:
alert( "Интерфейс".toUpperCase() ); // ИНТЕРФЕЙС
alert( "Интерфейс" [0]. toLowerCase() ); // 'и'
Поиск подстроки
Для поиска подстроки есть
метод indexOf(подстрока[, начальная_позиция])
var str = "Widget with id";
alert( str. indexOf("Widget") ); // 0, т.к. "Widget" найден прямо в начале
//str
alert( str.indexOf("id") ); // 1, т.к. "id" найден, начиная с позиции 1
alert( str.indexOf("widget") ); // -1, не найдено, так как поиск учитывает
//регистр
Взятие подстроки: substr, substring, slice
Метод substring(start [, end]) возвращает подстроку с
позиции start до, но не включая end.
var str = "stringify";
alert(str. substring(0,1)); // "s", символы с позиции 0 по 1 не включая 1
Если аргумент end отсутствует, то идет до конца строки:
var str = "stringify";
alert(str. substring(2)); // ringify, символы с позиции 2 до конца
Метод substr(start [, length]). Первый аргумент имеет такой же смысл,
как и в substring, а второй содержит не конечную позицию, а количество
символов.
var str = "stringify";
str = str. substr(2,4); // ring, со 2й позиции 4 символа
alert(str);
Метод slice(start [, end]). Возвращает часть строки от позиции start до, но
не включая, позиции end. Смысл параметров — такой же как в substring.
Различие между substring и slice — в том, как они работают с
отрицательными и выходящими за границу строки аргументами
В методе substring(start, end) отрицательные аргументы
интерпретируются как равные нулю. Слишком большие значения усекаются
до длины строки:
alert( "testme". substring(-2) ); // "testme", -2 становится 0
Кроме того, если start > end, то аргументы меняются местами, т.е.
возвращается участок строки между start и end:
alert( "testme". substring(4, -1) ); // "test"
// -1 становится 0 -> получили substring(4, 0)
// 4 > 0, так что аргументы меняются местами -> substring(0, 4) = "test"
В методе slice отрицательные значения отсчитываются от конца строки:
alert( "testme". slice(-2) ); // "me", от 2 позиции с конца
alert( "testme". slice(1, -1) ); // "estm", от 1 позиции до первой с конца
Download