Рубрики
Без рубрики

Примитивы JavaScript имеют методы и свойства! Чего ждать?

Привет, ребята! Как дела? В прошлый раз я обсуждал с коллегой, который все в Python Wa … Теги с обсуждением, JavaScript, Python, программированием.

Привет, ребята! Как дела?

В прошлый раз я обсуждал с коллегой, который в Питоне был объектом. Четные числа. Чтобы показать это, я только что сделал следующее:

print((2).__add__(2)) # should print 4

То есть номера имеют Методы Отказ То же самое верно для других языков программирования, таких как Ruby. Однако в основном каждый другой язык программирования (включая JavaScript) у нас есть примитивы. Как мы их создаем? Ну, с одной или двойной кавычки, как это:

let a = "foo"

Если мы возьмем тип этой переменной, это будет типовая строка:

console.log(typeof a) // "string"

Как мы создаем строковые объекты? Нравится:

let b = new String(a)
console.log(typeof b) // "object"

Таким образом, если мы сравним значения А и преступность мы получим:

console.log(a == b) // true
console.log(a === b) // false

Как вы знаете, == Оператор будет сравнивать для равенства после выполнения любых необходимых преобразований типа. === Оператор не будет делать преобразования. И как А и B имеют разные типы, то мы получаем ложь Отказ

Мы также можем получить примитивы от Строка звонки в контексте неконструктора. Это значит, называется без Новый ключевое слово).

let c = String(a)
console.log(typeof c) // "string"
console.log(a == c) // true
console.log(a === c) // true

Как вы видите, на этот раз === Оператор возвращает правда потому что А и C оба примитивов.

Но тогда, почему мы можем назвать методы примитивов?

Конечно, мы можем сделать что-то вроде этого:

console.log(a.length) // 3
console.log(a.toUpperCase()) // "FOO"

Мы можем получить Длина Свойство примитива и позвонить Tourpercase метод. Чего ждать? Как у примитивы есть свойства и Методы ?

Ну, они этого не делают. Это зависит от контекст Отказ

Когда метод должен быть вызван на примитивную строку или наличие свойств происходит, JavaScript Будет автоматически обернуть примитивную строку и позвонить в метод или выполнить поиск свойств Отказ

То же самое происходит с другими примитивами в JavaScript:

  • Число
  • Бинти
  • Логический
  • Символ

Чтобы получить примитивное значение с этих объектов, просто позвоните ValueOf () метод. Например:

let d = b.valueOf()
console.log(a == d) // true
console.log(a === d) // true

Довольно круто!

Оригинал: “https://dev.to/davidarmendariz/javascript-primitives-have-methods-and-properties-wait-what-h26”