1. Преобразование типов
1.Преобразовать в строку
Интересная особенность логических значений, чисел и строковых примитивов ECMAScript заключается в том, что они являются псевдообъектами, а это означает, что они действительно имеют свойства и методы.
нравиться:
Скопируйте код кода следующим образом:
вар sColor = "синий";
alert(sColor.length);//выводит "4"
Таким образом, все три основных примитивных значения — логические значения, числа и строки — имеют методы toString(). Все объекты, определенные ECMAScript, имеют метод toString(), независимо от того, является ли это псевдообъектом или реальным объектом.
Логический метод toString() просто выводит «истину» или «ложь», а результат определяется значением переменной:
Скопируйте код кода следующим образом:
вар bFound = ложь;
alert(bFound.toString()); // выводит «ложь»
Метод toString() типа Number является особенным. Он имеет два режима: режим по умолчанию и базовый режим. Используя режим по умолчанию, метод toString() использует только соответствующую строку для вывода числового значения (независимо от того, является ли оно). целое число, число с плавающей запятой или метод научной записи).
Скопируйте код кода следующим образом:
вар iNum1 = 10;
вар fNum2 = 10,0;
alert(iNum1.toString()); // выводит «10»
alert(fNum2.toString()); // выводит «10»
Используя базовый режим метода toString() типа Number, числа можно выводить в разных системах счисления (основаниях).
Скопируйте код кода следующим образом:
вар iNum = 10;
alert(iNum.toString(2)); //выводит "1010";
alert(iNum.toString(8)); //выводит "12";
alert(iNum.toString(16)); //выводит "A";
2. Преобразование в числа
ECMAScript предоставляет два метода преобразования нечисловых примитивных значений в числа, а именно parseInt() и parseFloat().
Примечание. Только когда эти методы вызываются для типа String (кроме Number), они будут работать правильно. Все остальные типы будут возвращать NaN.
Например:
Скопируйте код кода следующим образом:
var iNum1 = parseInt("1234blue");//возвращает 1234
var iNum2 = parseInt("oxA"); // возвращает 10
var iNum3 = parseInt("22.5"); //возвращает 22
var iNum4 = parseInt("синий"); // возвращает NaN
Метод parseInt() также имеет базовый режим, который может преобразовывать двоичную, восьмеричную, шестнадцатеричную или любую другую базовую строку в десятичное целое число. Второй параметр указывает, какую базу анализировать.
Скопируйте код кода следующим образом:
var iNum1 = parseInt("AF",16);// возвращает 175
var iNum2 = parseInt("10",2 // возвращает 2);
var iNum3 = parseInt("10",8 //возвращает 8);
var iNum4 = parseInt("10",10 //возвращает 10);
Примечание. Если десятичное число содержит ведущие 0, лучше всего использовать основание 10, иначе вы получите восьмеричное значение.
Скопируйте код кода следующим образом:
var iNum1 = parseInt("010"); // возвращает 8
var iNum2 = parseInt("010",8 //возвращает 8);
var iNum3 = parseInt("010",10);//возвращает 10
Метод parseFloat() аналогичен методу parseInt(). Он просматривает каждый символ, начиная с позиции 0, до тех пор, пока не будет найден первый недопустимый символ, а затем преобразует строку перед символом в число. Для этого метода первая десятичная точка является допустимым символом. Если используются две десятичные точки, вторая десятичная точка будет считаться недействительной. Еще одно отличие использования этого метода заключается в том, что строка должна представлять собой число с плавающей запятой в десятичной форме.
Скопируйте код кода следующим образом:
var fNum1 = parseFloat("1234blue"); //возвращает 1234.0
var fNum2 = parseFloat("0xA"); // возвращает NaN
var fNum3 = parseFloat("22,5"); //возвращает 22,5
var fNum4 = parseFloat("22.34.5");//возвращает 22.34
var fNum5 = parseFloat("0908");//возвращает NaN
var fNum6 = parseFloat("blue");//возвращает NaN
3. Принудительное преобразование типов
В ECMAScript доступны следующие три типа приведения:
(1).Boolean(значение)
Преобразуйте данное значение в логический тип.
Функция Boolean() возвращает значение true, если преобразуемое значение представляет собой строку, ненулевое число или объект, содержащий хотя бы один символ. Если значение представляет собой пустую строку, число 0, неопределенное или нулевое значение, оно вернет false.
нравиться:
Скопируйте код кода следующим образом:
вар b1 = Boolean(""); // ложь;
var b2 = Boolean("привет");//истина
var b3 = Boolean(100);//истина
var b4 = Boolean(null);//false
var b5 = Boolean(0);//ложь
var b6 = Boolean(new Object());//true
(2).Число(значение)
Преобразует заданное значение в число (может быть целым числом или числом с плавающей запятой).
Также помните, что методы parseInt() и parseFloat() преобразуют строку только перед первым недопустимым символом, поэтому «4.5.6» будет преобразовано в «4.5». Приведение с помощью Number(), "4.5.6" вернет NaN, поскольку все строковое значение невозможно преобразовать в число. Если строку можно полностью преобразовать, Number() определит, следует ли вызывать метод parseInt() или метод parseFloat().
нравиться:
Скопируйте код кода следующим образом:
Число(ложь);//0
Число(истина);//1
Число(не определено);//NaN
Число(ноль);//0
Число("5.5");//5.5
Число("56");//56
Число("5.6.7");//NaN
Число(новый объект());//NaN
Число(100);//100
(3).Строка(значение)
Преобразуйте данное значение в строку.
Единственное отличие от вызова метода toString() заключается в том, что приведение нулевого или неопределенного значения создает строку без возникновения ошибки:
Скопируйте код кода следующим образом:
var s1 = String(null);//"ноль"
вар oNull = ноль;
var s2 = oNull.toString();//вызывает ошибку
2. Тип ссылки
Ссылочные типы обычно называются классами, что означает, что при обнаружении ссылочного значения объект обрабатывается. ECMAScript определяет «определения объектов», которые логически эквивалентны классам в других языках программирования.
1.Класс объекта
Все классы ECMAScript унаследованы от этого класса, а все свойства и методы класса Object появятся в других классах (переопределены).
Свойства класса объекта:
(1).Конструктор ---- Ссылка (указатель) на функцию, создающую объект. Для класса Object этот указатель указывает на исходную функцию object().
(2).Prototype ---- Ссылка на прототип объекта. Для всех классов он по умолчанию возвращает экземпляр объекта Object.
Методы класса Object:
(1).HasOwnProperty(property) ----Определите, имеет ли объект определенный атрибут. Свойство должно быть указано в виде строки (например: o.hasOwnProperty("name")).
(2).IsPrototypeOf(object) ---- Определите, является ли объект прототипом другого объекта.
(3).PropertyIsEnumerable(property) ---- Определите, можно ли перечислить данное свойство с помощью оператора for..in.
(4).ToString() ---- Возвращает исходное строковое представление объекта. Различные реализации ECMAScript имеют разные значения.
(5).ValueOf() ---- Возвращает исходное значение, которое лучше всего подходит объекту. Для многих классов значение, возвращаемое этим методом, совпадает со значением, возвращаемым toString().
2. Логический класс
Логические объекты редко используются в ECMAScript, а даже если и используются, их нелегко понять.
Например:
Скопируйте код кода следующим образом:
вар oFalseObject = новое логическое значение (ложь);
var bResult = oFalseObject && true;//выводит true;
Причина. В логических выражениях все объекты автоматически преобразуются в true.
3. Класс номера
Специальные значения, такие как Number.MAX_VALUE, являются статическими свойствами класса Number. Чтобы получить исходное значение Number числового объекта, просто используйте метод valueOf():
вар iNumber = oNumberObject.valueOf();
Помимо стандартных методов, унаследованных от класса Object, класс Number имеет несколько специализированных методов для обработки числовых значений.
метод toFixed():
Возвращает строковое представление числа с указанным количеством десятичных знаков. Метод может представлять числа от 0 до 20 десятичных знаков. Значения вне этого диапазона вызовут ошибку.
нравиться:
Скопируйте код кода следующим образом:
вар oNumberObject = новый номер (99);
aler(oNumberObject.toFixed(2));//выводит "99.00"
метод toExponential():
Возвращает строковое представление числа в экспоненциальной записи. Этот метод также принимает параметр, указывающий количество выводимых десятичных знаков. Например:
Скопируйте код кода следующим образом:
вар oNumberObj = новый номер (99);
alert(oNumberObj.toExponential(1));//выводит "9.9e+1"
метод toPrecision():
Возвращает заранее определенную или экспоненциальную форму числа, в зависимости от того, какая форма имеет наибольший смысл. У него есть один аргумент, который представляет собой общее количество цифр, используемых для представления числа (без учета показателя степени).
Скопируйте код кода следующим образом:
вар oNumberObj = новый номер (99);
alert(oNumberObj.toPrecision(1));//выводит "1e+2" ==100
Как видно, метод toPrecision() округляет число, чтобы получить число, максимально близкое к истинному значению.
нравиться:
Скопируйте код кода следующим образом:
вар oNumberObj = новый номер (99);
alert(oNumberObj.toPrecision(2));// выводит "99"
alert(oNumberObj.toPrecision(3));// выводит "99.0"
Методы toFixed(), toExponential() и toPrecision() выполняют операции округления для правильного представления числа с правильным количеством десятичных знаков.
метод toLocaleString():
Оно может отображаться в формате на странице, например, 5210,50 отображается как 5,210,50, но если используется его значение, то его следует заменить в виде parseFloat($("N_YJJE").value.replace(// ,/g, "")); Удалите запятую и получите ее значение.
Примечание. Подобно логическим объектам, числовые объекты также важны, но их следует использовать с осторожностью, чтобы избежать потенциальных проблем. По возможности используйте необработанное представление чисел.
4. Класс String
Метод valueOf() и метод toString() объекта String возвращают исходное значение типа String:
Скопируйте код кода следующим образом:
alert(oStringObj.valueOf() == oStringObj.toString()); // выводит «истина»
Класс String имеет атрибут length, который представляет собой количество символов в строке:
Скопируйте код кода следующим образом:
var oStringObj = новая строка («привет, мир»);
alert(oStringObj.length); выводит «11»
Примечание. Даже если строка содержит двухбайтовые символы, каждый символ считается только одним символом.
метод charAt():
Возвращает строку, содержащую символ в указанной позиции:
Скопируйте код кода следующим образом:
var oStringObj = новая строка («привет, мир»);
alert(oStringObj.charAt(1)); выводит "e"
Метод charCodeAt():
Возвращает строку, содержащую код символа в указанной позиции:
Скопируйте код кода следующим образом:
var oStringObj = новая строка («привет, мир»);
alert(oStringObj.charCodeAt(1)); выводит "101"
метод конкат():
Используется для объединения одной или нескольких строк с исходным значением объекта String. Исходный объект String остается неизменным.
Скопируйте код кода следующим образом:
var oStringObj = новая строка («привет»);
var sResult = oStringObj.concat("world");//oStringObj+"world more common";
alert(sResult);//выводит "привет, мир"
alert(oStringObj);//выводит "привет"
Методы indexOf() и LastIndexOf() возвращают позицию указанной подстроки в другой строке (или -1, если подстрока не найдена). Разница между этими двумя методами заключается в том, что indexOf() начинает поиск подстроки с начала строки (позиция 0), а LastIndexOf() начинает поиск подстроки с конца строки.
localeCompare(), сравнивает строки (сравнивать в алфавитном порядке, последние больше). Этот метод имеет один параметр — сравниваемую строку и возвращает одно из следующих трёх значений:
1. Если объект String расположен в алфавитном порядке перед строкой в параметре, возвращается отрицательное число (чаще всего -1, но фактический результат определяется реализацией).
2. Если объект String равен строке в параметре, возвращается 0.
3. Если объект String расположен в алфавитном порядке после строки в параметре, верните положительное число (наиболее распространенное значение — 1, но фактическое значение возврата определяется реализацией).
Методы среза() и подстроки():
Оба метода возвращают подстроки строки, подлежащей обработке, и оба принимают один или два параметра. Первый параметр — это начальная позиция подстроки, которую необходимо получить, а второй параметр — позиция перед концом подстроки, которую необходимо получить (символы в конечной позиции не включаются в возвращаемое значение). Если второй аргумент опущен, бит завершения по умолчанию равен длине строки. Ни один из этих методов не меняет значение самого объекта String.
Скопируйте код кода следующим образом:
var oStringObj = новая строка («привет, мир»);
alert(oStringObj.slice(3));//выводит "lo world"
alert(oStringObj.slice(3,7));//выводит "низкий"
Примечание. Для отрицательных параметров метод среза() добавит длину строки к параметру, а метод substring() будет рассматривать ее как 0 (то есть она будет игнорироваться).
Скопируйте код кода следующим образом:
var oStringObj = новая строка («привет, мир»);
alert(oStringObj.slice(-3));//вывод "rld" эквивалентен обратной выборке
alert(oStringObj.substring(-3));//выводит "привет, мир"
alert(oStringObj.slice(3,-4));//выводит "low w"
alert(oStringObj.substring(3,-4));// выводит "hel" substring() всегда использует меньшее число в качестве начального бита и большее число в качестве конечного бита.
toLowerCase(), toLocalLowerCase(), toUpperCase() и toLocaleUpperCase():
Первые два метода преобразуют строку в нижний регистр, а последние два метода используются для преобразования строки в верхний регистр. Методы toLocalLowerCase() и toLocaleUpperCase() реализованы на основе конкретных регионов.
Помните: все свойства и методы класса String можно применять к примитивным значениям String, поскольку они являются псевдообъектами.
5. оператор экземпляра
Существует проблема при использовании ссылочного типа для хранения значений при использовании оператора typeof. Независимо от того, на какой тип объекта ссылаются, он возвращает «объект». Метод instanceof требует от разработчиков явного подтверждения того, что объект относится к определенному типу. нравиться:
Скопируйте код кода следующим образом:
var oStrObj = new String («Привет, мир»);
alert(oStrObj instanceof String); // выводит «истина»