JavaScript Методи Number. Перетворення змінних на цифри

Коли я пишу на JavaScript, то доводиться часто звертатися до пошукових систем, щоб уточнити синтаксис методів (і порядок, визначення аргументів) працюючих з рядками.

У цій статті я постараюся навести приклади та опис найбільш поширених методів JavaScript, пов'язаних з рядками. Найбільш популярні методи зручності розташовані у верхній частині статті.

Перетворюємо на рядок

Ви можете перетворити число, значення або об'єкт в рядок.

Var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Ви також можете зробити подібну маніпуляцію за допомогою функції string().

Var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Ніколас Закас каже: "Якщо ви не впевнені у значенні (null або undefined), то використовуйте функцію String() , оскільки вона повертає рядок незалежно від типу змінної".

undefined означає, що змінної не присвоєно ніякого значення, a null - що їй присвоєно порожнє значення (можна сказати, що null визначається, як порожній об'єкт).

Розбиваємо рядок на підрядки

Щоб розбити рядок на масив з підрядків, ви можете використовувати метод split() :

Var myString = "coming,apart,at,the,commas"; var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["coming", "apart", "at"]

Як випливає з останнього рядка, значення другого необов'язкового аргументу визначає кількість елементів у масиву, що повертається.

Отримати довжину рядка

За допомогою властивості length ви можете знайти число юнікодних символів у рядку:

Var myString = "You"re quite a character."; var stringLength = myString.length; // 25

Визначаємо підрядок у рядку

Є два способи здійснити задумане:

Використовувати indexOf() :

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

Метод indexOf() шукає підрядок (перший переданий аргумент) у рядку (від початку рядка) і повертає позицію першого символу, з якого почалося входження підрядка в рядок.

Використати lastIndexOf() :

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

Метод lastIndexOf() робить все те ж саме, за винятком того, що він шукає останній підрядок за входженням у рядок.

У випадку, якщо підрядок не знайдено, обидва методи повертають -1. Другий необов'язковий аргумент вказує на позицію у рядку, з якого ви хочете розпочати пошук. Так, якщо для методу indexOf() другий аргумент дорівнює 5, пошук почнеться з 5-го символу, а 0-4 символи будуть проігноровані. Для lastIndexOf() , також якщо другий аргумент дорівнює 5, пошук почнеться у зворотному напрямку, причому символи від 6-го та вище будуть проігноровані.

Як замінити частину рядка

Щоб замінити частину (або навіть усі) рядки, використовуйте метод replace() .

Var slugger = "Josh Hamilton"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Jose Bautista"

У першому аргументі міститься та частина підрядка, яка підлягає заміні; другий аргумент - це той рядок, який встане на місце підрядки, що замінюється. Буде замінено лише перший екземпляр підрядка.

Щоб замінити всі входження підрядки, використовуйте регулярний вираз c прапором "g".

Var myString = "She sells automotive shells on the automotive shore"; var newString = myString.replace(/automotive/g, "sea"); console.log(newString); // "She sells sea shells on the sea shore"

Другий аргумент може включати замінний підрядок або функцію.

Знайти символ за заданою позицією

Щоб з'ясувати, який символ стоїть у заданій позиції, ви можете використовувати метод charAt() :

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt(7); // "f"

Як це часто буває в JavaScript, перша позиція веде свій відлік з 0, а не з 1.

Як альтернативу ви можете використовувати метод charCodeAt() , проте замість символу ви отримаєте його код.

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Зауважте, що код для великої літери (позиція 11) відрізняється від коду тієї ж літери, але в малому регістрі (позиція 7).

Конкатенація рядків у javascript

Здебільшого для конкатенації рядків ви використовуватимете оператор (+). Але ви також можете поєднати рядки, використовуючи метод concat() .

Var stringOne="Knibb High football"; var stringTwo = stringOne.concat("rules."); // "Knibb High football rules"

У concat() можна передати безліч рядків, причому в результуючому рядку вони будуть розташовані в порядку додавання в метод concat() .

Var stringOne = "Knibb"; var stringTwo = "High "; var stringThree = "football"; var stringFour = "rules."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibb high football rules."

Частина рядка (отримати підрядок у javascript)

Є три різні способи створити новий рядок, "висмикнувши" частину підрядка з вже наявного рядка.

Використовуючи slice() :

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "fghij"

Використовуючи substring() :

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"

Для обох (slice() і substring()) методів перший аргумент - це позиція символу, з якого починається підрядок (відлік ведеться з 0), другий аргумент - це позиція символу, на якому підрядок закінчується, причому символ, позначений у другому аргументі, не включається в повертається підрядок.

Використовуючи substr() :

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

Для методу substr перший аргумент також визначає позицію символу, з якого починається підрядок. Другий аргумент є необов'язковим. Але в той же час другий аргумент визначає кількість символів, які мають бути включені в підрядок, починаючи з позиції, яку ми вже визначили у першому аргументі. Ця методика добре проілюстрована на прикладі вище.

Перетворення рядка на нижній або верхній регістр на javascript

Є чотири способи зробити необхідні перетворення. Два для перетворення символів рядка у верхній регістр.

Var stringOne = "Speak up, I can"t hear you."; var stringTwo = stringOne.toLocaleUpperCase(); // "SPEAK UP, I CAN"T HEAR YOU"

І два для перетворення рядка в нижній регістр:

Var stringOne = "YOU DON"T HAVE TO YELL"; var stringTwo = stringOne.toLocaleLowerCase(); // "you don"t have to yell"

Як правило, немає різниці між locale-методом та не-locale-методом, проте "для деяких мов, наприклад для турецької, у яких регістр символів не слідує встановленому регістру в системі Unicode, наслідки використання не-locale-методу можуть бути різними". Тому дотримуйтесь наступного правила: "якщо ви не знаєте мови, в якій працюватиме код, безпечніше використовувати locale-методи".

Відповідність шаблону в javascript

Перевірити наявність шаблону в рядку можна за допомогою 2-х методів.

Метод match() викликається у об'єкта string , як аргумент методу match() передається регулярне вираз.

Var myString = "How much wood could a wood chuck chuck"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "How much wood could a wood chuck chuck"

І exec() метод викликається у RegExp об'єкта, як аргумент передається рядок:

Var myString = "How much wood could a wood chuck chuck"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "How much wood could a wood chuck chuck"

Обидва методи повертають перше збіг входження. Якщо збіги не знайдені буде повернуто NULL. Якщо у регулярного виразу присутній прапор "g", то як результат буде повернено масив, що містить усі збіги.

Ви також можете використовувати метод search(), який як аргумент приймає регулярний вираз і повертає початкову позицію першого шаблону, що збігся.

Var myString = "Assume"; var patternLocation = myString.search(/ume/); // 3

Якщо збігів не виявлено, спосіб поверне -1.

Порівняння двох рядків для подальшого сортування

Щоб порівняти два рядки в залежності від порядку сортування в мовному стандарті, можна використовувати localeCompare метод . Метод localeCompare повертає три можливі значення.

MyString = "chicken"; var myStringTwo = "egg"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (except Chrome, які returns -2) whichCameFirst = myString.localeCompare("chicken"); // 0 whichCameFirst = myString.localeCompare("apple"); // 1 (Chrome returns 2)

Як показано вище, буде повернено негативне значення, якщо оригінальний рядок при сортуванні опиняється перед рядковим аргументом, якщо рядковий аргумент при сортуванні опиняється після оригінального рядка, повертається значення +1. Якщо повертається нульове значення, два рядки еквівалентні.

Останнє оновлення: 06.04.2018

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

Let name = "Tom";

Для роботи з рядками призначений об'єкт String, тому також можна використовувати конструктор String:

Var name = New String("Tom");

Але як правило, використовується перший коротший спосіб. У першому випадку JavaScript за необхідності автоматично перетворює змінну примітивного типу на об'єкт String.

Об'єкт String має великий набір властивостей та методів, за допомогою яких ми можемо маніпулювати рядками.

Властивість length вказує на довжину рядка:

Var hello = "привіт світ"; console.log("У рядку "" + hello + "" " + hello.length + " символів");

Метод repeat() дозволяє створити рядок шляхом багаторазового повторення іншого рядка. Кількість повторів передається як аргумент:

Let hello = "hello"; console.log(hello.repeat(3)); // hello hello hello

Шаблони рядків

Шаблони рядків дозволяють вставляти різні рядки в рядок. Для цього рядки полягають у косі лапки:

Let name = "Tom"; let hello = `Hello $(name)`; console.log(hello); // Hello Tom let age = 23; let info = `$(name) is $(age) years old`; console.log(info); // Tom is 23 years old

Для вставки значення рядок воно полягає у фігурні дужки, перед якими ставиться знак долара.

Також замість скалярних значень можуть додаватись властивості складних об'єктів або результати виразів:

Let tom =( name: "Tom", age: 25 ) let info = `$(tom.name) is $(tom.age) years old`; console.log(info); // Tom is 23 years old function sum(x, y)( return x + y; ) let a = 5, b = 4; let result = `$(a) + $(b) = $(sum(a, b))`; console.log(result); // 5 + 4 = 9

Пошук у рядку

Для пошуку рядка деякого підрядка використовуються методи indexOf() (індекс першого входження підрядка) і lastIndexOf() (індекс останнього входження підрядка). Ці методи приймають два параметри:

    Підрядок, який треба знайти

    Необов'язковий параметр, який вказує, з якого символу слід проводити пошук підрядки у рядку

Обидва ці методи повертають індекс символу, з якого в рядку починається підрядок. Якщо підрядок не знайдено, повертається число -1.

Let hello = "привіт мир. поки що світ"; let key = "світ"; let firstPos = hello.indexOf(key); let lastPos = hello.lastIndexOf(key); console.log("Перше входження:", firstPos); // 7 console.log("Остання входження: ", lastPos); // 17

Ще один метод - includes() повертає true, якщо рядок містить певний підрядок.

Let hello = "привіт мир. поки що світ"; console.log(hello.includes("світ")); // true console.log(hello.includes("мить")); // false

За допомогою другого додаткового параметра можна визначити індекс, з якого розпочинається пошук підрядка:

Let hello = "привіт мир. поки що світ"; console.log(hello.includes("світ", 5)); // true console.log(hello.includes("привіт", 6)); // false

Вибір підрядка

Для того, щоб вирізати з рядка підрядок, застосовуються методи substr() та substring().

Метод substring() приймає два параметри:

    індекс символу у рядку, починаючи з якого треба проводити обрізання рядка

    індекс, до якого треба обрізати рядок

let hello = "привіт мир. поки що світ"; let world = hello.substring(7, 10); // з 7-го по 10-й індекс console.log(world); // мир

Метод substr() також як перший параметр приймає початковий індекс підрядка, а як другий - довжину підрядки, що вирізається:

Let hello = "привіт мир. поки що світ"; let bye = hello.substr(12, 4); console.log(bye); // Бувай

Якщо другий параметр не вказується, то обрізається решта рядка:

Let hello = "привіт мир. поки що світ"; let bye = hello.substr(12); console.log(bye); // поки що світ

Управління регістром

Для зміни регістру є методи toLowerCase() (для переведення в нижній регістр) та toUpperCase() (для переведення у верхній регістр).

Let hello = "Привіт Том"; console.log(hello.toLowerCase()); // привіт тому console.log(hello.toUpperCase()); // ПРИВІТ ТОМ

Отримання символу за індексом

Щоб отримати певний символ у рядку за індексом, можна використовувати методи charAt() та charCodeAt() . Обидва ці методи як параметр приймають індекс символу:

Let hello = "Привіт Том"; console.log(hello.charAt(2)); // і console.log(hello.charCodeAt(2)); // 1080

Але як результат метод charAt() повертає сам символ, то метод charCodeAt() повертає числовий код цього символу.

Видалення прогалин

Для видалення початкових та кінцевих прогалин у стоку використовується метод trim() :

Let hello = "Привіт Том"; let beforeLength = hello.length; hello = hello.trim(); let afterLength = hello.length; console.log("Довжина рядка до: ", beforeLength); // 15 console.log("Довжина рядка після:", afterLength); // 10

Об'єднання рядків

Метод concat() поєднує два рядки:

Let hello = "Привіт"; let world = "світ"; hello = hello.concat(world); console.log(hello); // Привіт світ

Заміна підрядка

Метод replace() замінює перше входження однієї підрядки на іншу:

Let hello = "Добрий день"; hello = hello.replace("день", "вечір"); console.log(hello); // Добрий вечір

Перший параметр методу вказує, який підрядок треба замінити, а другий параметр - який підрядок треба замінити.

Поділ рядка

Метод split() розбиває рядок на масив підрядків за певним роздільником. Як роздільник використовується рядок, який передається в метод:

Var message = "Сьогодні була чудова погода"; var stringArray = message.split(" "); for(var str in stringArray) console.log(stringArray);

Виведення браузера

Сьогодні була чудова погода

Перевірка початку та закінчення рядка

Метод startsWith() повертає true, якщо рядок починається з певної підрядки. А метод endsWith() повертає true, якщо рядок закінчується на певний підрядок.

Let hello="let me speak from my heart"; console.log(hello.startsWith("let")); // true console.log(hello.startsWith("Let")); // false console.log(hello.startsWith("lets")); // false console.log(hello.endsWith("heart")); // true console.log(hello.startsWith("bart")); // false

При цьому відіграє роль регістр символів, і з прикладу ми бачимо, що "let" не еквівалентно "Let".

Додатковий другий параметр дозволяє вказати індекс (для startsWith - індекс з початку, а для endsWith - індекс з кінця рядка), щодо якого проводитиметься порівняння:

Let hello="let me speak from my heart"; console.log(hello.startsWith("me", 4)); // true, "me" - 4 індекс з початку рядка console.log(hello.startsWith("my", hello.length-8)); // true, "my" - 8 індекс з кінця

Об'єкт Number є об'єктом-обгорткою, який дозволяє працювати з числовими значеннями як з об'єктами. Об'єкт Number створюється з допомогою конструктора Number().

У контексті звичайної функції (тобто без оператора new), об'єкт Number може використовуватися для явного наведення типів:

Var num = Number ("32");

Синтаксис var foo = New Number (value); Параметри: foo Змінна, якій надається об'єкт Number. value Числове значення (або інше, яке може бути наведено до числа), яке прийме об'єкт після створення. Якщо аргумент може бути перетворений на число, повертається NaN . Методи Властивості Властивість Опис
constructorПосилається на функцію-конструктор, яка була використана під час створення об'єкта.
MAX_VALUEПредставляє найбільше позитивне число.
MIN_VALUEПредставляє найменше позитивне число - тобто, найближче до нуля позитивне число (яке ще не є нулем).
NEGATIVE_INFINITYСпеціальне значення подання негативної нескінченності. Повертається, коли обчислене значення виявиться меншим за найменше допустиме значення.
NaNСпеціальне значення означає "Not-a-Number" (не число).
POSITIVE_INFINITYСпеціальне значення уявлення позитивної нескінченності. Повертається, коли обчислене значення виявиться більшим за найбільше допустимого значення.
prototypeПосилається об'єкт, що є прототипом для об'єктів типу Number. Ця властивість використовується інтерпретатором, коли функція використовується як конструктор під час створення нового об'єкта. Будь-який об'єкт, створений з допомогою конструктора, успадковує всі властивості об'єкта, який посилається властивість prototype.

Функція isNaN повертає лише два значення: або Істина - true, або Брехня - false.

Якщо в змінній не число, то функція isNaN поверне Істину - слід звернути на це особливу увагу (НЕ КІЛЬКІСТЬ – це ІСТИНА. isNaN перекладається як не число). Якщо ж у змінній число, то вона поверне Брехню.

var name = "Антон"; /* рядковий об'єкт */
var age = 35; /* Чисельний об'єкт */

if(isNaN (name )) /* Якщо в змінній name не число - це Істина */
{
document.write (name + "- це не число")
}
else /* інакше - Брехня */
{
document.write (name + " - це число" )
}

Запам'ятайте, що isNaN - це вбудована в JavaScript функція.

, завдяки якому і за допомогою функції isNaN проводилася перевірка: чи є значення змінною числом чи ні.

Крім цього тут треба буде згадати тему масивів, циклівта функцій у javascript.

var randSimbol = ["Молоко", 77, 11, "Мед", - 88];

function number (randSimbol )
{
for(i = 0; i< randSimbol .length ; i ++ ) /* Составляем цикл для перебора всех элементов масива */
{
if(isNaN (randSimbol )) /* Якщо елемент масиву не число (це Істина), то... */
{
document.write (randSimbol + " - це не число

" )
}
else /* Інакше елемент масиву - це число (і це Брехня).... */
{
document.write (randSimbol + " - це число

" )
}
}
}

number (randSimbol); /* Викликаємо функцію */

Ось так працює функція isNaN стосовно числових об'єктів Number в Javascript.

Методи Number допоможе вам працювати з числами.

Number методів та властивостей

Примітивні значення (наприклад, 3,14 або 2014), не може мати властивості та методи (оскільки вони не є об'єктами).

Але з JavaScript, методи та властивості також доступні для примітивних значень, оскільки JavaScript розглядає примітивні значення як об'єкти при виконанні методів та властивостей.

toString() Метод

toString() повертає число у вигляді рядка.

Всі методи номер може бути використаний на будь-якому типі чисел (літерали, змінні або вирази):

приклад

var x = 123;
x.toString(); // returns 123 from variable x
(123).toString(); // returns 123 від literal 123
(100 + 23). toString (); // returns 123 from expression 100 + 23

Спробуй сам " toExponential() Метод

toExponential() повертає рядок з номером округлі і записуються за допомогою експоненційної нотації.

Параметр визначає кількість символів після коми:

Параметр не обов'язковий. Якщо ви не вкажете його, JavaScript не округлить число.

toFixed() Метод

toFixed() повертає рядок з числом, записаним із заданим числом знаків після коми:

toFixed(2) ідеально підходить для роботи з грошима.

toPrecision() Метод

toPrecision() повертає рядок з числом, записаним з певної довжини:

приклад

var x = 9656;
x.toPrecision(); // returns 9.656
x.toPrecision(2); // returns 9.7
x.toPrecision(4); // returns 9.656
x.toPrecision(6); // returns 9.65600

Спробуй сам " valueOf() Метод

valueOf() повертає номер як номер.

приклад

var x = 123;
x.valueOf(); // returns 123 from variable x
(123).valueOf(); // returns 123 від literal 123
(100 + 23). valueOf(); // returns 123 from expression 100 + 23

Спробуй сам

У JavaScript число може бути елементарне значення (typeof = number) або об'єкт (typeof = object) .

valueOf() метод використовується внутрішньо JavaScript для перетворення номера об'єктів в примітивні значення.

Там немає причин, щоб використовувати його у вашому коді.

Всі типи даних JavaScript мають valueOf() і toString() метод.

Перетворення змінних на цифри

Існують 3 методи JavaScript, які можуть бути використані для перетворення змінних у числа:

  • Number() метод
  • parseInt() метод
  • parseFloat() метод

Ці методи не є методами число, але глобальні методи JavaScript.

Глобальні методи

JavaScript Світові методи можуть бути використані на всіх типах даних JavaScript.

Це найбільш відповідні методи при роботі з числами:

Number() Метод

Number() може бути використаний для перетворення змінних JavaScript для чисел:

приклад

x = true;
Number(x); // returns 1
x = false;
Number(x); // returns 0
x = New Date();
Number(x); // returns 1404568027739
x = "10"
Number(x); // returns 10
x = "10 20"
Number(x); // returns NaN

Спробуй сам

Використовується на Date() , Number() метод повертає кількість мілісекунд, що пройшли з 1.1.1970.

parseInt() Метод

parseInt() розбирає рядок і повертає ціле число. Прогалини дозволені. Тільки перший номер повертається:

приклад

parseInt("10"); // returns 10
parseInt("10.33"); // returns 10
parseInt("10 20 30"); // returns 10
parseInt("10 years"); // returns 10
parseInt("years 10"); // returns NaN

Спробуй сам " parseFloat() Метод

parseFloat() розбирає рядок та повертає число. Прогалини дозволені. Тільки перший номер повертається:

приклад

parseFloat("10"); // returns 10
parseFloat("10.33"); // returns 10.33
parseFloat("10 20 30"); // returns 10
parseFloat("10 years"); // returns 10
parseFloat("years 10"); // returns NaN

Спробуй сам

Якщо число не може бути перетворено, NaN (не число) повертається.

Number Властивості

Номер властивості належить до об'єктів обгортку JavaScript називається Number .

Ці властивості можуть бути доступними лише як Number .MAX_VALUE .

Використовуючи myNumber.MAX_VALUE, де myNumberзмінна, вираз чи значення, повертатиме невизначене:

Повний JavaScript Number Reference

Щоб отримати повну довідку, перейдіть на наш Complete JavaScript номер посилання .