console.log("1" + 4 - "7") //what do you think? what the ans is? error?
Не беспокойтесь, это обычное предположение! 😄🎲 Многие могут предположить, что ответ «7» — это строка или ошибка и т. д., и в этом нет ничего постыдного. До открытия этой концепции мой ответ был таким же! Давайте погрузимся и раскроем правду вместе! 🚀💡
И я обещаю вам, что до того, как вы закончите читать эту статью, вы будете УВЕРЕННЫМИ в ответах на любой вопрос, связанный с оператором вычитания.
Приготовьтесь к потрясающему откровению!
В JavaScript, мастере динамической типизации, есть удивительная хитрость, которая вызовет у вас благоговейный трепет. Когда он встречает строку во время вычитания, он раскрывает свою магию и выполняет специальное секретное преобразование.
Эммм…? Специальное секретное преобразование?
Да, вы правильно прочитали! JavaScript тайно преобразует строки в числа! 🧙♂️ И вот в чем хитрость: на помощь приходит могучий унарный оператор плюс (
+
). На ваших глазах строка"7"
изящно преобразуется в числовое значение 7. Это настоящее волшебство! 🌈🦄
Вот что происходит в коде:
console.log("1" + 4 - "7") //step 1 "1" + 4 -> "14" //step 2 "14" - "7" -> 7 Here type conversion takes place (:
Любознательные умы могут удивиться, почему оператор сложения не запускает это преобразование типа. Если у вас возник этот вдумчивый вопрос во время чтения, мой друг, ответ ждет вас!
Я джаваскрипт. Нет, это не ваш ответ, но, возможно, вы слышали этот термин «конкатенация»? правильно, и мы делаем это с помощью оператора (+).
Оператор (+) выполняет преобразование типов только тогда, когда он используется правильно:
let a = "7" console.log(+a) //pause and think of the output
Леди и джентльмены, приготовьтесь к барабанной дроби… и результат… та-да! Это магическое число 7, а не строки! Да, и вычитание, и сложение действительно выполняют преобразование типов, но они действуют по-разному.
Большой! Пришло время увлекательного задания! Приготовьтесь погрузиться в мир JavaScript и проверить свои навыки.
const numStr = "123"; const NumStr = "8"; const result1 = +numStr - 10; const result2 = NumStr - 10; console.log(result1); console.log(result2);
Попробуйте! Угадайте, какой будет результат, прежде чем запускать код. Если ваша догадка верна, поздравляю, вы поняли концепцию! Если нет, не беспокойтесь, просто вернитесь к статье, чтобы получить полезное напоминание! (:
Откройте путь к волшебству JavaScript! 🔮✨ Присоединяйтесь ко мне на LinkDn и отправляйтесь в путешествие, наполненное умопомрачительными концепциями JavaScript. 🚀🧙♂️ Раскройте свой потенциал программирования, и вместе мы покорим царство тайн JavaScript! Не упустите эту волшебную возможность! 💫😊
Img кредит — https://www.kickstarter.com/projects/getify/you-dont-know-js-yet-second-edition-books