В чем разница методов для строки .slice() и .substr()

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
19 июля 2022

Оба метода работают схожим образом, они возвращают подстроку в заданном диапазоне:

const text = 'hexlet';

console.log(text.slice(1, 3)); // => ex

console.log(text.substr(1, 3)); // => exl

Метод slice принимает первым параметром индекс, с которого начинается извлечение, а вторым индекс, по которому идёт извлечение.

Метод substr первым параметром принимает тоже индекс, с которого идёт извлечение, а вторым параметром длину извлекаемой подстроки (поэтому в примере этот метод извлек на один символ больше).

Метод slice более универсальный и работает также с массивами. Метод substr считается устаревшим и не рекомендуется к использованию. Вместо него лучше использовать substring - 'этот метод работает так же, как slice.

1 0
Аватар пользователя Aleksey
Aleksey
05 апреля 2023

Метод substr() не является частью стандарта ECMAScript, а был добавлен в браузеры Netscape Navigator и Internet Explorer в далеком прошлом. В настоящее время он заменен на методы substring() и slice(), которые являются частью стандарта ECMAScript и поддерживаются всеми современными браузерами.

Во-вторых, метод substr() имеет неоднозначное поведение при передаче отрицательных значений в качестве аргументов. Например, если передать отрицательное значение второго аргумента, то метод substr() будет воспринимать его как индекс символа с конца строки, а не как количество символов, которые нужно извлечь. Это может привести к неожиданным результатам и ошибкам в коде.

0 0
Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
22 августа 2024

Методы .slice() и .substr() используются для извлечения части строки, но у них есть различия.

Метод .slice():

  • Принимает два аргумента: начальный индекс и конечный индекс, не включительно.
  • Если конечный индекс не указан, то метод возвращает подстроку до конца строки.
  • Можно указывать отрицательные индексы, которые отсчитываются с конца строки.
let str = "JavaScript";
console.log(str.slice(0, 4));  // "Java"
console.log(str.slice(4));     // "Script"
console.log(str.slice(-6));    // "Script"

Метод .substr():

  • Принимает также два аргумента, но начальный индекс и длину подстроки.
  • Также, если длина не указана, метод возвращает подстроку до конца строки.
  • Можно указыать отрицательный начальный индекс, но не отрицательную длину.
let str = "JavaScript";
console.log(str.substr(0, 4));  // "Java"
console.log(str.substr(4));     // "Script"
console.log(str.substr(-6, 6)); // "Script"

Основное различие в том, что .slice() использует начальный и конечный индексы, а .substr() использует начальный индекс и длину.

0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

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

Тест-драйв

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.