JavaScript
Вопрос про объекты
Читал что строки в JS не объекты согласно книге Фленагана, а обращение к методам строки просто создает обертку объект. Но у авторов курсов и лекций слышал, что в js все объекты. Кому блин верить ??
По факту, для программиста в JavaScript нет разницы между значением примитивного типа и объектом: ты можешь для всего, кроме null и undefined, вызвать метод. Или, например, написать 3.25.field = 'string', создавая поле field у числа 3.25 - абсолютно корректная, хотя и бессмысленная конструкция.
Для того, чтобы различить разные виды значений, в JavaScript есть операция typeof, которая для строки вернёт 'string', а для "классического" объекта - 'object'. Но (внимание, грабли!!!), для значения null (которое не является объектом) typeof тоже вернёт 'object'.
В Java есть отдельно примитивные типы, для которых невозможно вызывать методы, и есть классы, являющиеся обёртками для этих типов (каждый примитивный тип имеет парный ему класс). И ты точно знаешь, когда работаешь с примитивным значением, а когда с объектом. Но в JavaScript всё свалено в одну кучу: интерпретатор JS сам решает, когда использовать примитивный тип, а когда объект.
Для того, чтобы различить разные виды значений, в JavaScript есть операция typeof, которая для строки вернёт 'string', а для "классического" объекта - 'object'. Но (внимание, грабли!!!), для значения null (которое не является объектом) typeof тоже вернёт 'object'.
В Java есть отдельно примитивные типы, для которых невозможно вызывать методы, и есть классы, являющиеся обёртками для этих типов (каждый примитивный тип имеет парный ему класс). И ты точно знаешь, когда работаешь с примитивным значением, а когда с объектом. Но в JavaScript всё свалено в одну кучу: интерпретатор JS сам решает, когда использовать примитивный тип, а когда объект.
Всё -- объекты.
Строки в JS (а также числа, булевые значения, и т.д.) - это примитивы, не объекты. В данном случае, книга не врет.
Верь спецификации языка, а не левым источникам. Книги тоже иногда содержат ошибки, что уж говорить о всяких курсиках...
Верь спецификации языка, а не левым источникам. Книги тоже иногда содержат ошибки, что уж говорить о всяких курсиках...
в javascript есть Стандартные встроенные объекты
string входит в этот состав
string входит в этот состав
В книге Фалангана всё верно написано. Сами строки не являются объектами но если строку создать с помощью new String(); тогда он будет объектом и когда ты используешь обычную строку с каким то методом например str.toLowerCase(); то строка превращается в объект и после этого срабатывает метод так как методы работают с объектами но в итоге возвращается не объект а преобразованная строка.
Похожие вопросы
- Какую структуру данных вы используете в разработке js приложений? Дерево? или Множество объектов? пояснение внутри
- Задача по JavaScript. Заполнение объектов через цикл в JavaScript
- Как сделать радномный выбор объекта? HTML, JS
- Получение массива из объектов, которые содержат имя cookie и ее значение
- Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?
- Что представляют из себя объекты в JavaScript?
- Передача переменных в экземпляр объекта, вроде как в его аргументы, если я ничего не напутал
- Зачем разработчики js сделали так что там где могли быть функции они добавили методы встроенных объектов.
- Для объекта Date написать функцию isBetween( date1, date2), которая возвращает true
- А это правда, что в Javascript НЕ СУЩЕСТВУЕТ ассоциативных массивов? Вместо них объекты.