Алгоритм сравнения JavaScript
Перевод Ссылка на автора
Оператор «равно» кажется очень простой концепцией, но на практике он выполняет много манипуляций в фоновом режиме.
Эта статья посвящена пониманиюосновные базовые понятия, которые приводят к манипулированию равенством. Мы рассмотрим следующие сценарии:
- Сравнение значений разных типов
- Приравнивание вторичного типа объекта к примитивному значению
- Сравнение нулевых и неопределенных и ложных значений.
- Преобразования типов во время проверок на равенство
Мы рассмотрим несколько аспектов сравнения двух значений с помощью оператора равенства (==
). Сравнивая две переменные, мы также должны рассмотреть концепциюпреобразование типов.
Задумывались ли вы, что происходит за кулисами, когда вы сравниваете значения различных типов в примере сравнения объектов с числовыми значениями? Давайте посмотрим на эти детали.
Когда мы выполняем операциюx == y
всегда возвращает true или false. Однако, при сравнении, следующие сценарии могут быть возможными …
Сравнение между одними и теми же типами: (Type (x) == Type (y))
Когда мы сравниваем значения переменных одного типа, это сравнительно легче выиграть. Нам не нужно много анализировать, чтобы сравнивать переменные одного типа.
Ниже мы будем искать простые сравнения с одним и тем же типом, а затем мы расширим документ для сравнения значений разных типов.
- Если оба
Type(x) == Type(y) == “undefined”
то выводtrue
,
2. КогдаType(x) == Type(y) == “null”
, выходtrue
,
3. ЕслиType(x) == Type(y) == “String”
, сравнение вернетсяtrue
еслиx
а такжеy
являются точными последовательностями символов и имеют одинаковую длину для значений, содержащихся в строке.
4. ЕслиType(x) == Type(y) == “Boolean”
, он вернетсяtrue
если оба значения либоtrue
илиfalse
и он вернетсяfalse
если оба значения не совпадают.
5. ЕслиType(x) == Type(y) == “Object”
, он вернетсяtrue
если обе ссылки на объекты указывают на один и тот же объект. В случае объектов сравнение выполняется для ссылки на память. При сравнении проверяется, указывают ли оба объекта на одно и то же место в памяти. Если место в памяти совпадает, возвращаетсяtrue
,
Однако что произойдет, если мы сравним два объекта с одинаковыми свойствами внутри них? Вернется ли оператор сравненияtrue
?
В приведенном выше фрагменте кода мы видим, что даже если объект содержит те же значения свойств, объект будет равенfalse
так как адрес памяти двух переменных отличается.
Пока что мы рассмотрели сценарии, которые достаточно интуитивно предсказуемы. Давайте посмотрим дальше на более специализированный сценарий со сравнением.
6. ЕслиType(x) == Type(y) == “Number”
- Если
Value(x) is NaN
любое значение по сравнению сNaN
возвращаетсяfalse
, - Если
Value(y) is NaN
сравнение сNaN
возвращаетсяfalse
, - Если
Value(x) == Value(y) == NaN
,
Приведенный выше сценарий представляет собой случай, когдаNaN
по сравнению сNaN
,
В приведенном ниже коде“Hello” * 10
это не число, а, следовательно, значениеb
являетсяNaN
, Мы сравниваем две переменные, содержащиеNaN
значения. Как вы думаете, выход будет?
Давайте посмотрим на результат:
В приведенном выше примере можно интерпретировать, что если две сравниваемые переменные не являются числом, то это не означает, что они одинаковы.NaN
означает, что это не число. Если это не число, это может быть что угодно. Так что приравнивать их вместе не дастtrue
,
- Если
Value(x) = -0 and Value(y) = 0
, сравнение возвращает истину. - Если
Value(x) = 0 and Value(y) = -0
, сравнение возвращает истину.
Он представляет собой сценарий: (Тип (x)! = Тип (y))
Теперь рассмотрим аспект сравнения двух переменных разных типов. Давайте посмотрим на другой сценарий для сравнения.
Value(x) == null and Value(y) == undefined
: В данном сценарии результат сравнения оказываетсяtrue
,undefined
а такжеnull
значения приравнены кtrue
,
Заметка:“undefined == null”
а также“null == undefined”
возвращаетсяtrue
,
2. Type(x)
это строка иType(y)
это число.
Это интересный сценарий, в котором мы сравниваемстрока с числовым значением. Нам необходимо понять основную концепцию, лежащую в основе сравнения этих двух различных типов переменных.
Как вы думаете, будет ли какой-то тип конверсии в приведенном выше сценарии? Если вы думаете, что происходит такой тип конверсии, можете ли вы предсказать, какой тип конверсии произойдет? Будет ли строка преобразована в число или наоборот?
Вывод вышеуказанного выполнения может быть обобщен как:
* ToNumber(Value(x)) == Value(y)
Всякий раз, когда мы сравниваем числовое значение со строковым значением, строковое значение сначала преобразуется в числовое значение, а затем они сравниваются. Тип строки преобразуется в числовой тип перед сравнением.
3.Type(x)
является логическим иType(y)
это число.
Это еще один сценарий, в котором требуется преобразование типа, если у нас одно из свойств имеет логическое значение, а другое свойство представляет числовое значение. Затем логический тип преобразуется в числовое значение, и выполняется сравнение Мы можем обобщить это следующим образом:
* ToNumer(Value(x)) == Value(y)
Просто чтобы добавить к информации, касающейся преобразования типов для логического значения, во время преобразования типа,true
тип преобразуется в числовое значение как1
, а такжеfalse
преобразуется в числовое значение0
,
Смотрите пример ниже для большей ясности:
В приведенных выше примерах мы можем видеть, что когда одно из значений представляет логический тип, а другое — строкового типа, логическое значение преобразуется для представления значения 1 или 0.
4.Type(x)
это объект иType(y)
это строка
Это последний сценарий сравнения, гдеType(x)
это объект иType(y)
может быть числовым, строковым или логическим значением (примитив). Давайте рассмотрим этот сценарий и поймем, как можно провести сравнение между объектами и примитивными типами данных.
Вы видите, как в приведенном выше сценарии мы пытаемся сравнить объект со строковым значением? Результат сравнения оказываетсяfalse
, что, кажется, правильно.
Но возникает вопрос: какова стоимость объекта слева во время операции сравнения? Если вышеуказанная операция вернетсяfalse
, может быть некоторый вывод из левой операции, который сравнивается со значением в правой части. Теперь давайте рассмотрим эту ситуацию подробнее.
В приведенном выше коде мы попытались вызватьtoString
методuserData
объект, но вывод не имеет большого смысла. Итак, давайте попробуем переопределитьtoString
функция объекта. Смотрите ниже следующие шаги:
Мы переопределилиtoString
функция, чтобы получить некоторый логический вывод из вызова функции. ПереопределенныйtoString()
функция возвращает текстовое значение,“Hello Mayank”
,
Теперь следующий шаг должен дать нам ясность относительно того, что происходит, когда объект сравнивается с примитивными типами. Просто найдите приведенный ниже код и попытайтесь предсказать ответ на этот вопрос.
Если вы все еще не можете предсказать, как работает оператор сравнения между объектными и примитивными типами данных, позвольте мне объяснить.
В приведенном выше выполнении мы видим, что когда объект сравнивался с примитивным типом данных, функцияtoString
вызывается на объекте, и вывод изtoString
функция приравнивается к другому типу примитива balue. Если выход изtoString
совпадает со значением типа примитива, выход получаетсяtrue
(иначе,false
возвращается).
Надеюсь, вам понравилась статья!
Другие статьи того же автора:
21 техника оптимизации производительности для React
Простые и эффективные шаги по оптимизации для лучшей производительности приложения React
medium.com
Основы генераторов JavaScript
Быстрый взгляд на одну из лучших функций ES6
medium.com
Введение в React Hooks
Как использовать State Hooks в React
medium.
comРеагировать на компоненты высшего порядка (HOC)
Понять React HOCs с помощью варианта использования
medium.com
Введение в RxJS и реактивное программирование
Реактивное программирование — последнее модное слово в мире JavaScript
medium.com
Глубокая и мелкая копия в JavaScript
Все, что вы хотите знать о глубокой и мелкой копии
medium.com
Использование Memo Hook in React
Как оптимизировать производительность с помощью ловушек useMemo
medium.com
Angular ViewChild и ViewChildren
Все, что вам нужно знать о @ViewChild и @ViewChildren
medium.com
Реагировать useEffect Hooks в действии
Все, что вам нужно знать об использовании ReactEffect Hooks
medium.com
Работа с ECMAScript 2019 Асинхронная итерация с использованием for-of
Как использовать циклы for-of в ECMAScript 2019
medium.com
Работа с компонентами React Pure
Когда стоит работать с чистыми компонентами?
medium.
comВменяйте недостающие значения с помощью SciKit’s Imputer — Python
Отсутствие значений может привести к противоречивым результатам
medium.com
В Чём Отличие Java от JS?
С каждым днем программирование становится все более популярным. Это одна из самых востребованных областей на рынке труда — все, от небольших компаний до огромных корпораций, нанимают программистов для разработки своих платформ. Поскольку существует так много языков программирования, может быть трудно выбрать конкретный язык для изучения. Вот почему сегодня, в этой статье-сравнении Java и JavaScript, мы поговорим об этих двух наиболее популярных языках программирования.
В самом начале я расскажу вам о каждом из языков программирования отдельно. Мы поговорим об их истории, отличительных функциях и т. д. После этого мы выведем основные критерии для сравнения Java и JavaScript. Наконец, в самом конце мы рассмотрим, в чем отличие Java от JavaScript в соответствии с критериями, установленными ранее.
Содержание
- 1. Происхождение: С Чего Всё Началось
- 2. Java
- 3. JavaScript
- 4. Критерии Сравнения
- 4.1. Простота
- 4.2. Абстракция
- 4.3. Популярность
- 5. Java и JavaScript – Сравнение
- 5.1. Какой Язык Проще?
- 5.2. Какой Язык Более Абстрактен?
- 5.3. Какой Язык Более Популярен?
- 6. Немного Больше Сравнения
- 7. Заключение
Происхождение: С Чего Всё Началось
Обсуждать языки программирования очень сложно! Тем не менее, они предлагают преимущества для людей, которые хотят их изучать. Мир программирования основан на своей собственной, отдельной философии — у него есть своя этика, ценности, правила и так далее. Изучение и истинное понимание языка программирования может помочь вам расширить свой кругозор и взглянуть на мир с новой точки зрения.
Говоря о других практических применениях программирования, то этот навык часто выступает в качестве «меры безопасности» для вашей карьеры. Программирование — настолько популярная профессия, что почти невозможно оказаться в ситуации, когда вам трудно найти работу. Конечно, некоторые языки программирования более популярны, чем другие — это легко увидеть, взглянув на среднюю зарплату программиста и на то, как она варьируется для каждого языка (но программисты в целом получают большую зарплату). Вот почему было бы неплохо посмотреть обзоры языков программирования (или сравнения, такие как эта статья про Java и JavaScript), прежде чем решить, какой язык подойдет вам лучше всего.
С учетом сказанного, давайте перейдем к рассмотрению тот, в чем заключается отличие Java и JavaScript. И так как нам нужно иметь довольно хорошее представление об этих двух языках программирования, чтобы их сравнивать, мы начнем с разговора о Java.
Самые Полюбившиеся Статьи
Ищете более подробную информацию по какой-либо связанной теме? Мы собрали похожие статьи специально, чтобы вы провели время с пользой. Взгляните!
Java
Java известен своим лозунгом WORA, или «напиши один раз, запускай везде» (write once, run everywhere). Этот слоган представляет универсальность и адаптируемость этого языка программирования.
Java был создан Джеймсом Гослингом и его двумя коллегами еще в июне 1991 года. Предполагалось, что это будет проектно-ориентированный язык программирования, основанный на синтаксисе C/C++ — это легко объясняется тем, что программисты тогда в основном знали С и С++.
Иногда неплохо знать историю, но она не отвечает на вопрос, в чем особенность Java? Особенность языка в том, что я уже назвал выше — универсальность.
Тот факт, что Java настолько универсален, вызвал много шумихи вокруг языка программирования. И это не просто спекуляция — большинство компаний, работающих с большими данными и приложениями для Android во всем мире, по умолчанию используют Java. Это перетекает в другой факт, касающийся Java — популярность этого языка программирования и по сей день привлекает новых разработчиков Java на рынок труда. Дело в том, что популярность Java, не пропадёт в ближайшее время — спрос на разработчиков Java на самом деле все еще растет!
Больше всего критики в сторону Java возникает, когда обсуждается возраст языка программирования. Люди говорят, что Java устарел и что есть языки программирования, которые намного лучше. Тем не менее, Java 9 стремится доказать, что люди не правы — у него есть несколько различных обновлений, которые призваны доказать, что Java все еще является реальным конкурентом в мире современных языков программирования.
Это было только краткое введение в Java. Мы рассмотрим его основные функции чуть позже, когда начнем сравнивать Java и JavaScript . Однако, прежде чем это произойдет, нам все еще нужно обсудить JavaScript и сформулировать критерии сравнения. Итак, давайте продолжим разбор Java и JavaScript и поговорим про язык JavaScript.
JavaScript
Также как и Java, JavaScript это (чаще называемый, как JS) высокоуровневый язык программирования. Он был создан в 1995 Бренданом Эйхом из Netscape Communications. Идея JavaScript заключалась в том, чтобы упростить Java, используя тот же самый синтаксис.
У JavaScript есть несколько преимуществ перед другими языками программирования. Несмотря на то, что многие любят критиковать этот язык программирования (то же самое было и с Java; я уже поминал об этом выше в статье про Java и JavaScript) за то, что он ограничивается лишь браузерным использованием, он доказал, что язык может использоваться во многих других ситуациях.
Плюс ко всему, JavaScript — это простота (в сравнении с другими языками программирования) и он прекрасно адаптируется к другим языкам программирования. В тех случаях, когда PHP или Ruby неприменимы, JavaScript вступает в игру — JavaScript, в отличие от большинства, может быть интегрирован в большинство веб-страниц, независимо от расширения файла, которое используют эти страницы.
Несмотря на то, что на первый взгляд это может показаться очевидным, но JavaScript выделяется популярностью. Можно было бы подумать, что у Java есть преимущество перед JavaScript, если дело доходит до сравнения Java и JavaScript, но все не так просто. Язык JavaScript на самом деле очень популярен — тот факт, что этот язык программирования так широко используется, делает его очень доступным и супер популярным.
Итак, после всего вышесказанного вы должны иметь общее представление об обоих рассматриваемых языках программирования. Давайте перейдем к следующей части нашего сравнения Java и JavaScript и поговорим о некоторых критериях нашего сравнения.
Критерии Сравнения
В этой статье про Java и JavaScript мы будем использовать три больших аспекта, которыми должен обладать каждый язык программирования, чтобы выдержать испытание временем и пережить своих соперников. Они ни в коем случае не являются ЕДИНСТВЕННЫМИ особенностями хорошего языка программирования — они просто являются одними из наиболее важных, без которых язык программирования не может выжить.
Вот эти три особенности: простота, абстракция и популярность. Давайте рассмотрим все три, чтобы вы могли полностью понять, с чем мы имеем дело.
Простота
Язык программирования должен быть простым в использовании. Это звучит очевидно, верно? К сожалению, это не так. Многие языки программирования по сей день очень сложны в использовании. Они часто используют отговорки, такие как «сложная структура» или «быстрое время выполнения». Тем не менее, ни одна из этих вещей ничего не значит, если язык слишком сложный. Большинство наиболее популярных языков программирования (мы поговорим о двух конкретных случаях Java и JavaScript чуть позже) и их сообщества знают об этом — было бы трудно найти супер-популярный язык программирования, который одновременно трудно использовать.
Абстракция
Абстракция может звучать… абстрактно для людей, которые никогда раньше не имели дело с языком программирования. Однако, если вы полны энтузиазма, вы, вероятно, согласитесь, что абстракция является важной функцией, если речь идет о долговечности языка, и именно поэтому это описано в этой статье про Java и JavaScript.
Абстракция — это категория, которая позволяет языку программирования определять определенные сложные структуры, а затем исполнять их, игнорируя при этом некоторые менее важные детали. Это дает множество преимуществ — увеличение скорости, популярности, эффективности и т. д. Абстракция может быть найдена в объектно-ориентированных языках программирования — как следует из названия, они игнорируют детали и фокусируются на объекте.
Популярность
Это уже более сложный аспект. Вы можете подумать — насколько популярность важна для языков программирования? И преимущество ли это? Хорошо, позвольте мне объяснить.
Прежде всего, давайте будем реалистами — чем больше распространения у языка программирования, тем он лучше. И это даже не отсылка на «стадное чувство» или что-то подобное — это просто вопрос логики. Если есть язык программирования позволяет программистам творить чудеса, люди будут его использовать. Чем больше людей его используют, тем популярнее он становится!
Вы все еще сомневаетесь,что это особенность языка? Хорошо, момент, который очень важен для нашего сравнения Java и JavaScript, — это поддержка сообщества. Если у языка программирования большое количество сторонников, он, безусловно, будет широко использоваться, получать частые обновления и в целом пользоваться поддержкой сообщества. И это не только техническая сторона. Представьте, что вы должны изучать язык программирования — вам, вероятно, будет приятно, если в Интернете будет много информации об этом, не так ли? Что ж, я лично знаю многих людей, которым приходилось изучать малоизвестные языки программирования — это было очень сложно, так как в Интернете было мало информации.
Java и JavaScript – Сравнение
Теперь, когда мы выяснили ключевые моменты, давайте сразу перейдем к фактическому сравнению Java и JavaScript. Мы рассмотрим всё поэтапно, чтобы избежать путаницы и быть максимально конкретными.
Какой Язык Проще?
Что касается простоты, оба языка программирования имеют довольно высокую оценку. По стандарту Java считается одним из самых простых языков программирования для изучения на сегодня. Язык JavaScript тоже попадает в эту категорию, поскольку он основан на синтаксисе Java. Итак, если вы ищете простой язык программирования, я должен сказать, что трудно отличить Java и JavaScript — оба являются хорошими кандидатами!
Какой Язык Более Абстрактен?
Абстракция является важной особенностью языка программирования. Здесь оба языка программирования, опять же, похожи. Однако можно заметить большое различие, когда мы говорим о типе языков: Java — это язык программирования OOП (объектно-ориентированное программирование), а JavaScript — это язык сценариев OOП. Однако оба они более или менее основаны на ООП, что делает их оба абстрактными.
Преимущества
- Огромное разнообразие курсов
- Простая навигация
- Нет технических проблем
Особенности
- Огромное разнообразие курсов
- Политика 30-дневного возврата средств
- Бесплатные сертификаты об окончании
Посмотреть На Все Купоны Лучших Платформ Для Онлайн Обучения
Преимущества
- Простой в использовании
- Предлагает качественный контент
- Очень открытый в своих ценах
Особенности
- Бесплатные сертификаты об окончании
- Фокус на навыки науки о данных
- Гибкое расписание занятий
Посмотреть На Все Купоны Лучших Платформ Для Онлайн Обучения
Какой Язык Более Популярен?
Это довольно просто — в сравнении Java и JavaScript оба эти языка программирования имеют большое количество последователей и большую поддержку. И это не пустые слова — это означает, что какой бы язык вы ни выбрали, вы найдете в Интернете тонну информации и получите большую поддержку сообщества.
Немного Больше Сравнения
Итак, мы рассмотрели некоторые основные различия между Java и JavaScript, по крайней мере с точки зрения функциональности языков программирования. Однако, если вам все еще интересно, в чем отличие Java от JavaScript? Хорошо, позвольте мне дать вам ответ.
Отличие Java от JavaScript в том, что Java может использоваться для создания приложений, которые работают на виртуальной машине или в браузере, в то время как JavaScript можно использовать только с браузером. Кроме того, код JavaScript может быть написан просто в тексте, а код Java должен быть скомпилирован.
Самые Популярные Статьи
Взгляните на нашу коллекцию руководств, статей и уроков про платформы для онлайн обучения и массовые открытые онлайн курсы. Всегда будьте в курсе и принимайте взвешенные решения!
Заключение
Итак, мы подошли к концу этого сравнения JavaScript и Java. Я надеюсь, что информация, представленная в руководстве, была полезна для вас, и теперь вы знаете больше об обоих языках программирования!
Помните, что оба эти языка довольно разные и используются в разных ситуациях. Решение о том, какой из них лучше, зависит исключительно от ваших личных предпочтений и потребностей.
Хотите мой совет? Просто выучите их оба! Это сделает все намного проще, и вы расширите свой набор навыков! Это беспроигрышная ситуация!
Что бы вы ни решили, я желаю вам удачи!
Оставьте ваше честное мнение
Оставьте ваше честное мнение и помогите тысячам людей выбрать лучшую платформу для онлайн обучения. Все отзывы, позитивные или негативные, будут приниматься, если они честны. Мы не публикуем предвзятые отзывы и спам. Поэтому, если вы хотите поделиться вашим опытом, мнением или дать совет — у вас есть всё необходимое!
8 операторов сравнения JavaScript, которые вам нужно знать | by Aziz Booker
Полное руководство по операторам сравнения в JavaScript
Photo by Mohammad Rahmani on UnsplashПервый оператор сравнения, который мы рассмотрим, это Equal оператор сравнения .
Оператор равенства прост для понимания, поскольку все, что он делает, это проверяет, имеют ли две переменные одинаковое значение.
Важно отметить, что тип переменной делает , а не имеют значение, когда дело доходит до проверки на равенство.
Возьмем, к примеру, следующий код:
Пример оператора сравнения на равенствоОбратите внимание, как число 3 и строка «3» оцениваются как истинные?
Наш следующий оператор сравнения, strict equal , аналогичен нашему предыдущему оператору.
Однако есть одно заметное отличие.
В отличие от оператора равенства, оператор строгого равенства проверяет, имеют ли два операнда одинаковое значение 9Тип 0007 и .
Возьмем для справки наш предыдущий пример. Если бы мы заменили наш оператор равенства оператором строгого равенства (===), мы бы заметили другой результат.
Разница будет заключаться в том, что вычисление 3 и «3» на этот раз фактически вернет false!
Причина этого в том, что хотя 3 и «3» имеют одинаковое значение, они относятся к разным типам.
Ниже приведен код для этого:
Пример оператора сравнения строгого равенстваНаш третий оператор, не равный 9Оператор сравнения 0007 является прямой противоположностью нашему первому оператору сравнения.
В то время как оператор сравнения равенства оценивается как true, если два его операнда имеют одинаковое значение. Неравный операнд повышает значение true, если два его операнда равны , а не одного и того же значения.
Следует отметить, что тип операнда не имеет значения, когда дело доходит до повышения неравного выражения.
Код ниже показывает это в действии:
Пример оператора сравнения Not EqualСтрогий оператор не равно похож на оператор не равно.
Единственная разница состоит в том, что тип и значение должны быть одинаковыми, чтобы оно оценивалось как ложное.
В приведенном ниже коде показан оператор строгого не равенства в действии:
Пример оператора сравнения строгого не равенстваВсе операторы «больше чем» возвращают истину, если операнд в левой части больше, чем операнд в правой. сторона руки.
Это означает, что если левый операнд меньше или равен значению правого оператора, выражение вернет false.
Приведенный ниже код показывает это в действии:
Пример оператора сравнения «больше чем»Оператор «больше или равно» действует точно так же, как предыдущий оператор. Единственная разница в том, что он также возводится в значение true, если обе части операндов имеют одинаковое значение.
Ниже приведен код для этого:
Пример оператора сравнения «больше или равно»Оператор «меньше чем» повышает уровень выражения, сравнивая правый операнд с левым операндом.
Выражения становятся истинными, только если правый оператор больше левого операнда.
Приведенный ниже код демонстрирует это:
Пример оператора сравнения «больше или равно»Оператор «меньше или равно» действует точно так же, как оператор «меньше». Единственная разница в том, что он также возводится в значение true, если обе части операндов имеют одинаковое значение.
Приведенный ниже код демонстрирует это:
Пример оператора сравнения больше или равноСпасибо, что добрались до конца моей статьи «8 операторов сравнения JavaScript, которые вам нужно знать» . Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать, и я постараюсь ответить как можно скорее.
Желаю вам хорошего дня. Если вы новичок в Medium, вы можете присоединиться по этой ссылке здесь.
Как получить размеры устройства в React Native
Как сделать так, чтобы ваше приложение подходило для устройств разных размеров.
javascript.plainenglish.io
8 библиотек React Native, о которых вам обязательно нужно знать
Когда дело доходит до создания приложений с использованием React Native, поиск нужных библиотек может значительно упростить процесс разработки…
javascript.plainenglish.io
plainenglish.io . Подпишитесь на нашу бесплатную еженедельную рассылку здесь .
Как несколько операторов сравнения работают в JavaScript
Непрерывное обучение…
Устали от LeetCode? 😩
Изучите 24 паттерна, чтобы решить любой вопрос на собеседовании по программированию, не заблудившись в лабиринте практических задач в стиле LeetCode. Практикуйте свои навыки в практической среде кодирования, не требующей настройки. 💪
В JavaScript автоматическое преобразование типов происходит по мере необходимости. Операторы сравнения принимают два числовых операнда. Если один из операндов не имеет числового типа, перед применением операции он преобразуется в числовой.
Преобразование типов работает не для всех операторов.
Синтаксис
x < y < z
Пример 1
5 < 10 < 15
Возьмем приведенные выше значения и посмотрим, что произойдет.
- В этом сравнении
(x < y < z)
эквивалентно((x
. - Поскольку оба оператора
<
, они имеют одинаковый приоритет. Однако, поскольку<
имеет левую ассоциативность, выражение вычисляется слева направо. Следовательно,5 < 10
выполняется первым и возвращаетtrue
. - Далее нужно выполнить
true < 15
. Как обсуждалось ранее, происходит преобразование типов, иtrue
преобразуется в1
. - Эффективное выражение теперь
1 < 15
, которое возвращаетtrue
.
Пример 2
15 > 10 > 5
Возьмем приведенные выше значения и посмотрим, что произойдет.
- В этом сравнении
(x > y > z)
эквивалентно((x>y)>z)
. - Поскольку оба оператора
>
, они имеют одинаковый приоритет. Однако, поскольку>
имеет левую ассоциативность, выражение вычисляется слева направо. Следовательно,15 > 10
выполняется первым и возвращаетtrue
. - Далее нужно выполнить
true > 5
. Как обсуждалось ранее, происходит преобразование типов, иtrue
преобразуется в1
. - Эффективное выражение теперь
1 > 5
, которое возвращаетfalse
.
Код
// Пример 1
x = 5 < 10
console.log("5 < 10 равно " + x)
console.log(x + " < 15 равно " + (x < 15) ))
// Пример 2
y = 15 > 10
console.log("15 > 10 равно " + y)
console.log(y + " > 5 равно " + (y > 5))
Заключение
Эти случаи также могут быть решены с помощью логических операторов.
Операторы множественного сравнения более сложны для понимания и не улучшают читаемость кода. С другой стороны, логические операторы (И, ИЛИ, НЕ) обеспечивают более удобочитаемость и легкость понимания.
Поэтому следует избегать множественных операторов сравнения, используя операторы AND и OR для разделения выражения.