{"componentChunkName":"component---src-templates-post-js","path":"/javascript/samie-neobhodimie-strokovie-i-chislovie-metody-v-javascript/","result":{"pageContext":{"slug":"samie-neobhodimie-strokovie-i-chislovie-metody-v-javascript","content":"\n<p>В этой статье, а скорее памятке, вы найдете все самые необходимые методы для работы со строками и числами (за исключением&nbsp;<code>Math</code>)в JavaScript, которые нужно просто знать, чтобы не городить огородов, а воспользоваться методами, доступными&nbsp;<em>“из коробки”</em>.</p>\n\n\n\n<p class=\"author\"><em>Перевод статьи:<br></em><a href=\"https://flaviocopes.com/javascript-string/\"><em>JavaScript Reference: String</em></a><em><br>+ числовые методы оттуда же</em></p>\n\n\n\n<h2 id=\"7bf7\"><strong>String</strong></h2>\n\n\n\n<p id=\"a2cb\">У объекта&nbsp;<code>String</code>&nbsp;есть один статический метод,&nbsp;<code>String.fromCharCode()</code>, который обычно используют для создания строкового представления последовательности Unicode символов. В этом примере мы делаем простую строку с использованием ASCII кодов:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>String.fromCodePoint(70, 108, 97, 118, 105, 111) //'Flavio'</code></pre>\n\n\n\n<p>Вы также&nbsp;можете использовать восьмеричные и шестнадцатеричные числа:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>String.fromCodePoint(0x46, 0154, parseInt(141, 8), 118, 105, 111) //'Flavio'</code></pre>\n\n\n\n<p>Все другие, описанные ниже методы, это методы&nbsp;<em>“из коробки”</em>, которые работают на строках.</p>\n\n\n\n<h2 id=\"ead1\">charAt()</h2>\n\n\n\n<p id=\"676c\">Отдаёт символ под заданным индексом&nbsp;<code>i</code>.</p>\n\n\n\n<p id=\"0a3f\">Примеры:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Flavio'.charAt(0) //'F'\n'Flavio'.charAt(1) //'l'\n'Flavio'.charAt(2) //'a'</code></pre>\n\n\n\n<p id=\"8e4f\">Если вы зададите индекс, который не подходит по строке, то на выходе вы получите уже пустую строку.</p>\n\n\n\n<p id=\"7957\">В JavaScript нет типа char, так что char это строка с длиной&nbsp;<code>1</code>.</p>\n\n\n\n<h2 id=\"18ca\">charCodeAt()</h2>\n\n\n\n<p id=\"3753\">Отдаёт код символа под индексом&nbsp;<code>i</code>. Как и с&nbsp;<code>charAt()</code>, отдаёт Unicode 16-битное целое число, представляющее символ:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Flavio'.charCodeAt(0) //70\n'Flavio'.charCodeAt(1) //108\n'Flavio'.charCodeAt(2) //97</code></pre>\n\n\n\n<p>Вызов&nbsp;<code>toString()</code>&nbsp;после него, отдаст шестнадцатеричное число, которое вы можете найти в любой Unicode таблице,&nbsp;<a href=\"https://apps.timwhitlock.info/emoji/tables/unicode\">такой как эта</a>.</p>\n\n\n\n<h2 id=\"e6b0\">codePointAt()</h2>\n\n\n\n<p id=\"fdfe\">Этот метод был представлен уже в ES2015, чтобы работать с Unicode символами, которые не могут быть представлены как единичная 16-ти битная Unicode единица и которым вместо этого нужно их две.</p>\n\n\n\n<p id=\"3489\">Используя&nbsp;<code>charCodeAt()</code>, вам надо получить первый и второй, и затем совместить их. Используя&nbsp;<code>codePointAt()</code>&nbsp;вы получаете весь символ в одном запросе.</p>\n\n\n\n<p id=\"c3fa\">К примеру, этот китайский символ “𠮷” состоит из двух UTF-16 частей:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>\"𠮷\".charCodeAt(0).toString(16) //d842\n\"𠮷\".charCodeAt(1).toString(16) //dfb7</code></pre>\n\n\n\n<p>Комбинируем эти два unicode символа:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>\"\\ud842\\udfb7\" //\"𠮷\"</code></pre>\n\n\n\n<p>Вы можете получить тот же результат, но только используя&nbsp;<code>codePointAt()</code>:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>\"𠮷\".codePointAt(0) //20bb7</code></pre>\n\n\n\n<p>Если вы создаете новый символ, комбинируя эти unicode символы:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>\"\\u{20bb7}\" //\"𠮷\"</code></pre>\n\n\n\n<h2 id=\"d9c9\">concat()</h2>\n\n\n\n<p id=\"c646\">Объединяет актуальную строку со строкой&nbsp;<code>str</code>.</p>\n\n\n\n<p id=\"a030\">Пример:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Flavio'.concat(' ').concat('Copes') //'Flavio Copes'</code></pre>\n\n\n\n<p>Вы можете указывать сколько угодно аргументов и в таком случае, все эти аргументы будут объединены в строку.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Flavio'.concat(' ', 'Copes') //'Flavio Copes'</code></pre>\n\n\n\n<h2 id=\"ac2e\">endsWith()</h2>\n\n\n\n<p id=\"b92e\">Проверяет заканчивается ли строка со значением другой строки&nbsp;<code>str</code>.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.endsWith('Script') //true\n'JavaScript'.endsWith('script') //false</code></pre>\n\n\n\n<p>Вы можете передать второй параметр с целым числом и&nbsp;<code>endWith()</code>&nbsp;будет рассматривать оригинальную строку, как если бы она этой заданной длины:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.endsWith('Script', 5) //false\n'JavaScript'.endsWith('aS', 5) //true</code></pre>\n\n\n\n<h2 id=\"2ae4\">includes()</h2>\n\n\n\n<p id=\"b9b2\">Проверяет есть ли в строке значение строки&nbsp;<code>str</code>.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.includes('Script') //true\n'JavaScript'.includes('script') //false\n'JavaScript'.includes('JavaScript') //true\n'JavaScript'.includes('aSc') //true\n'JavaScript'.includes('C++') //false</code></pre>\n\n\n\n<p><code>includes()</code>&nbsp;также принимает второй опциональный параметр, целое число, которое указывает на позицию с которой начинать поиск.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'a nice string'.includes('nice') //true\n'a nice string'.includes('nice', 3) //false\n'a nice string'.includes('nice', 2) //true</code></pre>\n\n\n\n<h2 id=\"5db4\">indexOf()</h2>\n\n\n\n<p id=\"00b7\">Даёт позицию начала заданной строки&nbsp;<code>str</code>&nbsp;в строке, на которой применяется метод.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.indexOf('Script') //4\n'JavaScript'.indexOf('JavaScript') //0\n'JavaScript'.indexOf('aSc') //3\n'JavaScript'.indexOf('C++') //-1</code></pre>\n\n\n\n<p>Вы можете передать второй параметр, чтобы указать точку старта:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'a nice string'.indexOf('nice') !== -1 //true\n'a nice string'.indexOf('nice', 3) !== -1 //false\n'a nice string'.indexOf('nice', 2) !== -1 //true</code></pre>\n\n\n\n<h2 id=\"904e\">lastIndexOf()</h2>\n\n\n\n<p id=\"f05e\">Даёт позицию последнего появления строки&nbsp;<code>str</code>&nbsp;в актуальной строке.</p>\n\n\n\n<p id=\"f791\">Отдаёт&nbsp;<code>-1</code>, если поисковая строка не найдена.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript is a great language. Yes I mean JavaScript'.lastIndexOf('Script') //47\n'JavaScript'.lastIndexOf('C++') //-1</code></pre>\n\n\n\n<h2 id=\"2001\">localeCompare()</h2>\n\n\n\n<p id=\"e31b\">Этот метод сравнивает строки и возвращает число (отрицательное или положительное), которое говорит, является ли данная строка меньше, равной или больше, чем строка переданная как аргумент, но в зависимости от языка.</p>\n\n\n\n<p id=\"bae2\">Язык определяется настоящим местоположением или вы можете указать его, как второй аргумент:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'a'.localeCompare('à') //-1\n'a'.localeCompare('à', 'it-IT') //-1</code></pre>\n\n\n\n<p>Очень часто его используют для сортировки массивов:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>&#91;'a', 'b', 'c', 'd'].sort((a, b) => a.localeCompare(b))</code></pre>\n\n\n\n<p>Где бы вы обычно использовали:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>&#91;'a', 'b', 'c', 'd'].sort((a, b) => (a > b) ? 1 : -1)</code></pre>\n\n\n\n<p id=\"d71b\">Только тут мы можем это сделать с помощью localeCompare(), который позволит нам работать с алфавитами по всему миру.</p>\n\n\n\n<p id=\"fd2e\">Объект переданный как третий аргумент, может быть использован для передачи дополнительных условий. Посмотрите все возможные значения для этих условий&nbsp;<a href=\"https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\">на MDN</a>.</p>\n\n\n\n<h2 id=\"7207\">match()</h2>\n\n\n\n<p id=\"0cb2\">А вот работа с регулярными выражениями RegEx.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Hi Flavio'.match(/avio/)\n// Array &#91; 'avio' ]\n\n'Test 123123329'.match(/\\d+/)\n// Array &#91; \"123123329\" ]\n\n'hey'.match(/(hey|ho)/)\n//Array &#91; \"hey\", \"hey\" ]\n\n'123s'.match(/^(\\d{3})(\\w+)$/)\n//Array &#91; \"123s\", \"123\", \"s\" ]\n\n'123456789'.match(/(\\d)+/)\n//Array &#91; \"123456789\", \"9\" ]\n\n'123s'.match(/^(\\d{3})(?:\\s)(\\w+)$/)\n//null\n\n'123 s'.match(/^(\\d{3})(?:\\s)(\\w+)$/)\n//Array &#91; \"123 s\", \"123\", \"s\" ]\n\n'I saw a bear'.match(/\\bbear/)    //Array &#91;\"bear\"]\n\n'I saw a beard'.match(/\\bbear/)   //Array &#91;\"bear\"]\n\n'I saw a beard'.match(/\\bbear\\b/) //null\n\n'cool_bear'.match(/\\bbear\\b/)     //null</code></pre>\n\n\n\n<h2 id=\"a6ea\">normalize()</h2>\n\n\n\n<p id=\"b1ed\">В Unicode есть четыре главные формы нормализации. Их коды это&nbsp;<code>NFC</code>,&nbsp;<code>NFD</code>,&nbsp;<code>NFKC</code>&nbsp;и&nbsp;<code>NFKD</code>. На Википедии есть хорошая&nbsp;<a href=\"https://en.wikipedia.org/wiki/Unicode_equivalence\">статья про это</a>.</p>\n\n\n\n<p id=\"e66b\">Метод&nbsp;<code>normalize()</code>&nbsp;возвращает строку, нормализованную в соответствии с указанной формой, которую вы передаёте как параметр. (<code>NFC</code>&nbsp;используется как стандарт, если она не указана в ручную).</p>\n\n\n\n<p id=\"26b4\">Вот пример с MDN:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'\\u1E9B\\u0323'.normalize() //ẛ̣\n'\\u1E9B\\u0323'.normalize('NFD') //ẛ̣\n'\\u1E9B\\u0323'.normalize('NFKD') //ṩ\n'\\u1E9B\\u0323'.normalize('NFKC') //ṩ</code></pre>\n\n\n\n<h2 id=\"1859\">padEnd()</h2>\n\n\n\n<p id=\"2356\">Смысл этого метода в том, чтобы добавлять в строку символы и пробелы, пока она не достигнет заданной длины.</p>\n\n\n\n<p id=\"f18e\">padEnd() был представлен в ES2017, как метод добавляющий символы в конец строки.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>padEnd(targetLength &#91;, padString])</code></pre>\n\n\n\n<p>Простое применение:</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"616\" height=\"235\" src=\"https://stasonmars.ru/wp/wp-content/uploads/2021/02/1_JSuONO5pkEkHrtlPbayDUQ.png\" alt=\"\" class=\"wp-image-229\" srcset=\"https://stasonmars.ru/wp/wp-content/uploads/2021/02/1_JSuONO5pkEkHrtlPbayDUQ.png 616w, https://stasonmars.ru/wp/wp-content/uploads/2021/02/1_JSuONO5pkEkHrtlPbayDUQ-300x114.png 300w\" sizes=\"(max-width: 616px) 100vw, 616px\" /></figure>\n\n\n\n<h1 id=\"4bef\">padStart()</h1>\n\n\n\n<p id=\"ad26\">Смысл этого метода в том, чтобы добавлять строки или символы как в предыдущем методе, но уже с самого начала строки:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>padStart(targetLength &#91;, padString])</code></pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"623\" height=\"242\" src=\"https://stasonmars.ru/wp/wp-content/uploads/2021/02/1_LeXUASRJJwHSpxc8fn02PA.png\" alt=\"\" class=\"wp-image-230\" srcset=\"https://stasonmars.ru/wp/wp-content/uploads/2021/02/1_LeXUASRJJwHSpxc8fn02PA.png 623w, https://stasonmars.ru/wp/wp-content/uploads/2021/02/1_LeXUASRJJwHSpxc8fn02PA-300x117.png 300w\" sizes=\"(max-width: 623px) 100vw, 623px\" /></figure>\n\n\n\n<h2 id=\"0917\">repeat()</h2>\n\n\n\n<p id=\"f8b3\">Этот метод был представлен в ES2015 и повторяет строки заданное количество раз:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Ho'.repeat(3) //'HoHoHo'</code></pre>\n\n\n\n<p>Отдает пустую строку, если параметр не указан или параметр равен нулю. А в случае с отрицательным числом вы получите&nbsp;<em>RangeError.</em></p>\n\n\n\n<h2 id=\"7fb9\">replace()</h2>\n\n\n\n<p id=\"e168\">Этот метод находит первое упоминание&nbsp;<code>str1</code>&nbsp;в заданной строке и заменяет его на&nbsp;<code>str2</code>.</p>\n\n\n\n<p id=\"07c0\">Отдаёт новую строку, не трогая оригинальную.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.replace('Java', 'Type') //'TypeScript'</code></pre>\n\n\n\n<p>Вы&nbsp;можете передать регулярное выражение как первый аргумент:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.replace(/Java/, 'Type') //'TypeScript'</code></pre>\n\n\n\n<p><code>replace()</code>&nbsp;заменяет только первое упоминание, но а если вы будете использовать regex как поиск строки, то вы можете использовать (<code>/g</code>):</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript JavaX'.replace(/Java/g, 'Type') //'TypeScript TypeX'</code></pre>\n\n\n\n<p id=\"8982\">Второй параметр может быть функцией. Эта функция будет вызвана с заданным количеством аргументов, когда найдётся совпадение (или каждое совпадение в случае с regex&nbsp;<code>/g</code>):</p>\n\n\n\n<ul><li>Нужная строка</li><li>Целое число, которое указывает позицию в строке, где произошло совпадение</li><li>Строка</li></ul>\n\n\n\n<p id=\"3d0d\">Отдающееся значение функции заменит совпадающую часть строки.</p>\n\n\n\n<p id=\"5a84\">Пример:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.replace(/Java/, (match, index, originalString) => {\n  console.log(match, index, originalString)\n  return 'Test'\n}) //TestScript</code></pre>\n\n\n\n<p>Это работает и для обычных строк, а не только для регулярок:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.replace('Java', (match, index, originalString) => {\n  console.log(match, index, originalString)\n  return 'Test'\n}) //TestScript</code></pre>\n\n\n\n<p>В случае c regex, когда выбираются группы, все эти значения будут переданы как аргументы прямо после параметра совпадения.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'2015-01-02'.replace(/(?&lt;year>\\d{4})-(?&lt;month>\\d{2})-(?&lt;day>\\d{2})/, (match, year, month, day, index, originalString) => {\n  console.log(match, year, month, day, index, originalString)\n  return 'Test'\n}) //Test</code></pre>\n\n\n\n<h2 id=\"6b9d\">search()</h2>\n\n\n\n<p id=\"ea3a\">Отдаёт расположение первого совпадения строки&nbsp;<code>str</code>&nbsp;в заданной строке.</p>\n\n\n\n<p id=\"0162\">Этот метод отдаёт индекс начала упоминания или&nbsp;<code>-1</code>, если такого не было найдено.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.search('Script') //4\n'JavaScript'.search('TypeScript') //-1</code></pre>\n\n\n\n<p>Вы можете использовать регулярные выражения (и на самом деле, даже если вы передаёте строку, то внутренне оно тоже применяется как регулярное выражение).</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'JavaScript'.search(/Script/) //4\n'JavaScript'.search(/script/i) //4\n'JavaScript'.search(/a+v/) //1</code></pre>\n\n\n\n<h1 id=\"58b1\">slice()</h1>\n\n\n\n<p><a href=\"https://stasonmars.ru/javascript/razbiraemsya-s-putanitsei-mezhdu-metodami-javascript-slice-splice-i-split/\">В этой статье подробно рассказывается про метод slice() и его родственников.</a></p>\n\n\n\n<p id=\"1c32\">Отдает новую строку, которая является частью строки на которой применялся метод, от позиций&nbsp;<code>begin</code>&nbsp;до&nbsp;<code>end</code>.</p>\n\n\n\n<p id=\"47b6\">Оригинальная строка не изменяется.</p>\n\n\n\n<p id=\"81d4\"><code>end</code>&nbsp;опциональна.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'This is my car'.slice(5) //is my car\n'This is my car'.slice(5, 10) //is my</code></pre>\n\n\n\n<p>Если вы выставите первым параметром отрицательное число, то начальный индекс будет считаться с конца и второй параметр тоже должен быть отрицательным, всегда ведя отсчет с конца:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'This is my car'.slice(-6) //my car\n'This is my car'.slice(-6, -4) //my</code></pre>\n\n\n\n<h2 id=\"0d64\">split()</h2>\n\n\n\n<p id=\"909f\">Этот метод вырезает строку при её нахождении в строке на которой применяется метод (<em>чувствительный к регистру</em>) и отдаёт массив с токенами.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>const phrase = 'I love my dog! Dogs are great'\nconst tokens = phrase.split('dog')\n\ntokens //&#91;\"I love my \", \"! Dogs are great\"]</code></pre>\n\n\n\n<h2 id=\"6e3f\">startsWith()</h2>\n\n\n\n<p id=\"9d67\">Проверяет начинается ли строка со значения&nbsp;<code>str</code>.</p>\n\n\n\n<p id=\"8a6b\">Вы можете вызвать&nbsp;<code>startWith()</code>&nbsp;на любой строке, указать подстроку и проверить отдаёт результат&nbsp;<code>true</code>&nbsp;или&nbsp;<code>false</code>.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'testing'.startsWith('test') //true\n'going on testing'.startsWith('test') //false</code></pre>\n\n\n\n<p>Этот метод допускает второй параметр, который позволит вам указать с какого символа вам надо начать проверку:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'testing'.startsWith('test', 2) //false\n'going on testing'.startsWith('test', 9) //true</code></pre>\n\n\n\n<h2 id=\"f0e9\">toLocaleLowerCase()</h2>\n\n\n\n<p id=\"6ecb\">Этот метод отдаёт новую строку, которая представляет собой изначальную строку в нижнем регистре, в соответствии с нормами разметки указанной локали.</p>\n\n\n\n<p id=\"5823\">Собственно, первый параметр представляет локаль, но он опционален. Если его пропустить, то будет использоваться актуальная локаль:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Testing'.toLocaleLowerCase() //'testing'\n'Testing'.toLocaleLowerCase('it') //'testing'\n'Testing'.toLocaleLowerCase('tr') //'testing'</code></pre>\n\n\n\n<p>Как и всегда, мы можем не осознавать все преимущества интернационализации, но я читал на MDN, что правила разметки текста в турецком языке отличаются от других языков, чьё описание основано на латинице.</p>\n\n\n\n<p>В общем, это как и&nbsp;<code>toLowerCase()</code>, но с учетом локали.</p>\n\n\n\n<h2 id=\"dfe5\">toLocaleUpperCase()</h2>\n\n\n\n<p id=\"91b6\">Этот метод отдаёт новую строку, которая представляет собой изначальную строку в верхнем регистре, в соответствии с нормами разметки указанной локали.</p>\n\n\n\n<p id=\"7cd5\">Первым параметром указывается локаль, но это опционально, как и в случае с методом выше:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Testing'.toLocaleUpperCase() //'TESTING'\n'Testing'.toLocaleUpperCase('it') //'TESTING'\n'Testing'.toLocaleUpperCase('tr') //'TESTİNG'</code></pre>\n\n\n\n<h2 id=\"8a5c\">toLowerCase()</h2>\n\n\n\n<p id=\"295f\">Этот метод отдаёт новую строку с текстом в нижнем регистре.</p>\n\n\n\n<p id=\"cd70\">Не изменяет изначальную строку.</p>\n\n\n\n<p id=\"34b3\">Не принимает параметры.</p>\n\n\n\n<p id=\"befc\">Использование:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Testing'.toLowerCase() //'testing'</code></pre>\n\n\n\n<p>Работает как и&nbsp;<code>toLocaleLowerCase()</code>, но не учитывает локали.</p>\n\n\n\n<h2 id=\"ad6d\">toString()</h2>\n\n\n\n<p id=\"0480\">Отдает строку из заданного строчного объекта.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>const str = new String('Test')\nstr.toString() //'Test'</code></pre>\n\n\n\n<h2 id=\"ffd7\">toUpperCase()</h2>\n\n\n\n<p id=\"d317\">Отдаёт новую строку с текстом в верхнем регистре.</p>\n\n\n\n<p id=\"7dc5\">Не изменяет оригинальную строку.</p>\n\n\n\n<p id=\"4115\">Не принимает параметры.</p>\n\n\n\n<p id=\"ba5f\">Использование:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Testing'.toUpperCase() //'TESTING'</code></pre>\n\n\n\n<p id=\"f358\">Если вы передадите пустую строку, то он возвратит пустую строку.</p>\n\n\n\n<p id=\"6a06\">Метод похож на&nbsp;<code>toLocaleUpperCase()</code>, но не принимает параметры.</p>\n\n\n\n<h2 id=\"e0e1\">trim()</h2>\n\n\n\n<p id=\"d98e\">Отдает новую строку удаляя пробелы вначале и в конце оригинальной строки.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Testing'.trim() //'Testing'\n' Testing'.trim() //'Testing'\n' Testing '.trim() //'Testing'\n'Testing '.trim() //'Testing'</code></pre>\n\n\n\n<h2 id=\"203d\">trimEnd()</h2>\n\n\n\n<p id=\"9782\">Отдаёт новую строку, удаляя пробелы только из конца оригинальной строки.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Testing'.trimEnd() //'Testing'\n' Testing'.trimEnd() //' Testing'\n' Testing '.trimEnd() //' Testing'\n'Testing '.trimEnd() //'Testing'</code></pre>\n\n\n\n<h2 id=\"037e\">trimStart()</h2>\n\n\n\n<p id=\"5520\">Отдаёт новую строку, удаляя пробелы из начала оригинальной строки.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>'Testing'.trimStart() //'Testing'\n' Testing'.trimStart() //'Testing'\n' Testing '.trimStart() //'Testing '\n'Testing'.trimStart() //'Testing'</code></pre>\n\n\n\n<h2 id=\"ad10\">valueOf()</h2>\n\n\n\n<p id=\"2024\">Отдает строчное представление заданного строчного объекта:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>const str = new String('Test')\nstr.valueOf() //'Test'</code></pre>\n\n\n\n<p id=\"679a\">Это тоже самое, что и&nbsp;<code>toString()</code></p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Теперь пройдемся по числовым методам.</p></blockquote>\n\n\n\n<h2 id=\"1fa4\">isInteger()</h2>\n\n\n\n<p id=\"e4f2\">Отдаст&nbsp;<code>true</code>, если переданное значение является целым числом. Всё иное, такое как, логические значения, строки, объекты, массивы, отдают&nbsp;<code>false</code>.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>Number.isInteger(1) //true\nNumber.isInteger(-237) //true\nNumber.isInteger(0) //true\n\nNumber.isInteger(0.2) //false\nNumber.isInteger('Flavio') //false\nNumber.isInteger(true) //false\nNumber.isInteger({}) //false\nNumber.isInteger(&#91;1, 2, 3]) //false</code></pre>\n\n\n\n<h2 id=\"7a53\">isNaN()</h2>\n\n\n\n<p id=\"64e9\"><code>NaN</code>&nbsp;это особый случай. Число является&nbsp;<code>NaN</code>, только если оно&nbsp;<code>NaN</code>&nbsp;или если это выражения деления ноль на ноль, что отдаёт&nbsp;<code>NaN</code>. Во всех других случаях мы можем передать ему что захотим, но получим&nbsp;<code>false</code>:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>Number.isNaN(NaN) //true\nNumber.isNaN(0 / 0) //true\n\nNumber.isNaN(1) //false\nNumber.isNaN('Flavio') //false\nNumber.isNaN(true) //false\nNumber.isNaN({}) //false\nNumber.isNaN(&#91;1, 2, 3]) //false</code></pre>\n\n\n\n<h2 id=\"62af\">isSafeInteger()</h2>\n\n\n\n<p id=\"14b7\">Число может удовлетворять&nbsp;<code>Number.isInteger()</code>, но не&nbsp;<code>Number.isSafeInteger()</code>, если оно заходит за пределы безопасных целых чисел.</p>\n\n\n\n<p id=\"083d\">Так что, всё что выше 2⁵³ и ниже -2⁵³ не является безопасным.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>Number.isSafeInteger(Math.pow(2, 53)) // false\nNumber.isSafeInteger(Math.pow(2, 53) - 1) // true\nNumber.isSafeInteger(Math.pow(2, 53) + 1) // false\nNumber.isSafeInteger(-Math.pow(2, 53)) // false\nNumber.isSafeInteger(-Math.pow(2, 53) - 1) // false\nNumber.isSafeInteger(-Math.pow(2, 53) + 1) // true</code></pre>\n\n\n\n<h2 id=\"721b\">parseFloat()</h2>\n\n\n\n<p id=\"1baa\">Парсит аргумент как дробное число и отдаёт его. Аргумент при этом является строкой:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>Number.parseFloat('10') //10\nNumber.parseFloat('10.00') //10\nNumber.parseFloat('237,21') //237\nNumber.parseFloat('237.21') //237.21\nNumber.parseFloat('12 34 56') //12\nNumber.parseFloat(' 36 ') //36\nNumber.parseFloat('36 is my age') //36\n\nNumber.parseFloat('-10') //-10\nNumber.parseFloat('-10.2') //-10.2</code></pre>\n\n\n\n<p>Как вы видите&nbsp;<code>Number.parseFloat()</code>&nbsp;довольно гибок. Он также может конвертировать строки со словами, выделяя только первое число, но в этом случае строка должна начинаться с числа:</p>\n\n\n\n<pre class=\"wp-block-code\"><code>Number.parseFloat('I am Flavio and I am 36') //NaN</code></pre>\n\n\n\n<h2 id=\"9307\">parseInt()</h2>\n\n\n\n<p id=\"47fd\">Парсит аргумент как целое число и отдаёт его:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>Number.parseInt('10') //10\nNumber.parseInt('10.00') //10\nNumber.parseInt('237,21') //237\nNumber.parseInt('237.21') //237\nNumber.parseInt('12 34 56') //12\nNumber.parseInt(' 36 ') //36\nNumber.parseInt('36 is my age') //36</code></pre>\n\n\n\n<p>Как вы видите&nbsp;<code>Number.parseInt()</code>&nbsp;тоже гибок. Он также может конвертировать строки со словами, выделяя первое число, строка должна начинаться с числа.</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>Number.parseInt('I am Flavio and I am 36') //NaN</code></pre>\n\n\n\n<p>Вы можете передать второй параметр, чтобы указать систему счисления. Десятичная стоит по-дефолту, но вы можете применять восьмеричные и шестнадцатеричные числовые конверсии:</p>\n\n\n\n<pre class=\"wp-block-code javascript\"><code>Number.parseInt('10', 10) //10\nNumber.parseInt('010') //10\nNumber.parseInt('010', 8) //8\nNumber.parseInt('10', 8) //8\nNumber.parseInt('10', 16) //16</code></pre>\n\n\n\n<p></p>\n","type":"js","date":"2021-02-13T16:00:30.000Z","acf":{"seo_desc":"В этой статье, а скорее памятке, вы найдете все самые необходимые методы для работы со строками и числами (за исключением Math)в JavaScript, которые нужно просто знать, чтобы не городить огородов, а воспользоваться методами, доступными “из коробки”.","keywords":"строковые и числовые методы в JavaScript, числовые методы в JavaScript, строковые методы в JavaScript","pub_date":"2019-04-19","tags":"JavaScript, функции, JavaScript советы"},"title":"Самые необходимые строковые и числовые методы в JavaScript","id":"b21e71f3-19bc-5e16-91b9-4ba8819192b9","excerpt":"<p>В этой статье, а скорее памятке, вы найдете все самые необходимые методы для работы со строками и числами (за исключением Math)в JavaScript, которые нужно просто знать, чтобы не городить огородов, а воспользоваться методами, доступными “из коробки”.</p>\n","featured_media":{"source_url":"https://stasonmars.ru/wp/wp-content/uploads/2021/02/samieneobkjfnk.jpg"},"interesting":[{"title":"Понимаем немедленно вызываемые функции IIFE и немного больше","slug":"ponimaem-nemedlenno-vyzyvaemie-funkcii-iife-i-nemnogo-bolshe","type":"js"},{"title":"Всё, что нужно знать об async/await. Циклы, контроль потоков, ограничения","slug":"vse-chto-nuzhno-znat-ob-async-await-tsikly-kontrol-potokov-ogranicheniya","type":"js"},{"title":"5 распространенных ошибок, которые делает каждый новый программист в JavaScript","slug":"5-rasprostranennyh-oshibok-kotorie-delaet-kazhdyi-novyi-programmist-v-javascript","type":"js"}]}},"staticQueryHashes":["3576131997","63159454"]}