В чем разница между и

от admin

В чем разница между == и ===?

Мне кажется, что операторы == и === работают одинаково. Например:

Оператор == короче и часто встречается в других языках программирования. Так зачем === вообще?

Pavel Mayorov's user avatar

Операторы === и !== являются операторами строгого сравнения. Значит, если операнды имеют разные типы, то не являются равными. Например:

Операторы == и != являются операторами, скажем, грубого сравнения. То есть, если операнды имеют разные типы, JavaScript пытается как-то преобразовать их, чтобы стали сравнимыми. Например:

Интересно заметить, что в отличие от === , оператор == не является транзитивным:

Не очень легко помнить правила этого грубого сравнения, и иногда бывает, что оно работает неожиданным образом. Поэтому, я рекомендую использовать === вместо == .

Даже я не помню мелкие детали оператора == , так что посмотрим в спецификации, пункт 11.9.3:

В чем разница между & и &&?

Разницу в названиях то я знаю. Но вот какая разница в фактическом выполнении?
Оба работают только с bool, верно?

Чем & отличается от логического && ?
Чем | отличается от логического || ?
Именно, как это влияет на результат возвращаемого значения?

  • Вопрос задан более трёх лет назад
  • 18049 просмотров
  • Facebook
  • Вконтакте
  • Twitter

ThePyzhov

  • Facebook
  • Вконтакте
  • Twitter

ThePyzhov

Заодно тут вот что. Операции && и || т.н. «экономичные»: если первый операнд 0, && говорит, что результат 0 и не рассчитывает второго. Если первый операнд не 0, || также не рассчитывает второго.

Поэтому можно писать что-то наподобие if (p != NULL && p->field != 0) <> — при нулевом указателе он не разыменовывается.

  • Facebook
  • Вконтакте
  • Twitter

Rou1997

  • Facebook
  • Вконтакте
  • Twitter

Операции && || ! :
используются для проверки истинности своих операндов.

<< >> :
используются для управления битами в своих операндах.

Если у тебя есть переменные flag1, flag2, flag3, ты можешь проверить их на истинность:

А если у тебя есть переменная states, ты можешь проверить в ней какие-то определённые биты:

0x1 — в битовом представлении выглядит как
00000000 00000000 00000000 00000001

0x4 — в битовом представлении выглядит как
00000000 00000000 00000000 00000100

0x1 | 0x4 — в битовом представлении выглядит как
00000000 00000000 00000000 00000101

Пример1:
Если states равно 0x123 — в битовом представлении это выглядит как
00000000 00000000 00000001 00100011

Выражение states & (0x1 | 0x4) — в битовом представлении будет выглядеть как
00000000 00000000 00000001 00100011 &
00000000 00000000 00000000 00000101
=
00000000 00000000 00000000 00000001

Получилось, что всё выражение равно 0x1 или просто 1.

Пример2:
Если states равно 0x122 — в битовом представлении это выглядит как
00000000 00000000 00000001 00100010

Выражение states & (0x1 | 0x4) — в битовом представлении будет выглядеть как
00000000 00000000 00000001 00100010 &
00000000 00000000 00000000 00000101
=
00000000 00000000 00000000 00000000

В чем разница между (|) и (||?

побитовое или берет два числа и сравнивает их по битам, создавая новое целое число, которое объединяет 1 бит с обоих входов. Так что 0101 | 1010 будет производить 1111 .

логическое или || проверяет «истинность» значения (зависит от типа, для целых чисел 0-false, а ненулевое-true). Он оценивает оператор слева направо и возвращает первое значение, которое является правда. Так что 0101 || 1010 вернутся 0101 что истинно, поэтому все утверждение считается истинным.

тот же тип логики применяется для & vs && . 0101 & 1010 = 0000 . Однако 0101 && 1010 оценивает в 1010 ( && возвращает последнее значение истинности, если оба операнда истинны).

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

другое отличие в том, что || использует оценку ярлыка. То есть он оценивает только правую сторону, если левая сторона false (или преобразуется в false в логическом контексте, например 0 , «» , null , etc.). Аналогично, && оценивает только правую сторону, если левая сторона true (или ненулевая, непустая строка, объект и т. д.). | и & всегда оценивайте обе стороны, потому что результат зависит от точных битов в каждом значении.

в рассуждение — это для || , если любая из сторон истинна, все выражение истинно, поэтому нет необходимости оценивать дальше. && то же самое, но наоборот.

точная логика для || это то, что если левая сторона «правдива», верните это значение (обратите внимание, что это не преобразовано в логическое), в противном случае оцените и верните правую сторону. Для && , если левая сторона «falsey», то возвратите ее, в противном случае оцените и возвратите правую руку сторона.

вот несколько примеров:

чтобы объяснить немного больше в терминах непрофессионала:

&& и || are логическое операторы. Это означает, что они используются для логического сравнения;

это означает «Если a равно четырем, а b равно пяти»

| и & are побитовое операторы. Они работают с битами определенным образом, который статья wiki объясняет в деталь:

еще один пункт, который я хочу добавить, — / / оператор используется для назначения значения по умолчанию, если значение, которое вы назначаете, не определено. Поэтому для Exapmle вы назначаете obj некоторому объектному тесту, и если вы не хотите, чтобы тест был неопределенным, вы можете сделать следующее, чтобы гарантировать, что значение test не будет неопределенным.

поэтому в случае, если obj не определен, значение теста будет пустым объектом.

таким образом, он также используется для назначения значение по умолчанию для объекта.

С точки зрения Javascript, это еще не все.

операторы || и & & выполняют логический тест для первого операнда (a или c). Если операнд еще не является логическим (как это не так, здесь), происходит нормальное принуждение ToBoolean, так что тест может быть выполнен.

Читать:
Как скачать программу с торрента на компьютер

для оператора||, если тест истинен, выражение || приводит к значению первого операнда (a или c). Если тест false, то выражение || приводит к значению второго операнд (б).

наоборот, для оператора&&, если тест истинен, выражение && приводит к значению второго операнда (b). Если тест false, то выражение && приводит к значению первого операнда (a или c).

результат выражения | / or && всегда является базовым значением одного из операндов, а не (возможно, принудительным) результатом теста. В C && b c равно null и, следовательно, ложно. Но само выражение && приводит к null (значение в c), не в принудительном ложном, используемом в тесте.

Single / немного мудр или оператор . Если вы делаете 2 / 3, он преобразуется в двоичный файл и выполняет операцию или. Ноль один Одиннадцать Результаты в 11 равны 3.

где as / / оператор проверяет, истинен ли первый аргумент, если он истинен, он возвращает else, он переходит к другому оператору. 2 / / 3 возвращает 2, так как 2 истинно.

В чем разница между и

В программировании есть ситуации для выполнения математических вычислений. Оператор — это символ для выполнения определенных логических или математических функций над значением или переменной. Значение или переменные, с которыми происходят операции, называются операндами. В языках программирования есть различные операторы. Некоторые из них являются арифметическими операторами, операторами отношения, логическими операторами, поразрядными операторами и операторами присваивания. Арифметические операторы поддерживают математические операции, такие как сложение, вычитание, умножение и т. Д. Операторы отношения полезны для поиска взаимосвязи операндов. Побитовые операторы выполняют операции на битовом уровне. Один из основных побитовых операторов — это побитовое И. Он представлен с помощью &. Логические операторы помогают анализировать несколько условий для принятия решения. Один из основных логических операторов — это логическое И. Он представлен с помощью &&. В этой статье обсуждается разница между & и &&. В ключевое отличие между & и && это то, что & — это побитовый оператор, а && — логический оператор.

1. Обзор и основные отличия
2. Что такое & (побитовое И)
3. Что такое && (логическое И)
4. Сходства между & и &&
5. Параллельное сравнение — & vs && в табличной форме
6. Резюме

Что такое & (побитовое И)?

& — побитовый оператор. Программы написаны программистом. Эти программы понятны людям, но не понятны машине или компьютеру. Следовательно, необходимо преобразовать удобочитаемую программу в машиночитаемый формат. Машина распознает двоичные файлы; нули и единицы. Каждый двоичный файл — это бит. Битовая обработка полезна для увеличения скорости. В побитовых операторах, таких как &, оператор работает с битами и выполняет побитовую операцию.

Если a и b — переменные, а a содержит 0, а b содержит 1, то побитовое И равно 0. Если a имеет значение 1, а B имеет значение 0, то на выходе будет 0. Если a имеет значение 0, а B равно 0. со значением 1, то на выходе будет 0. Если и a, и b содержат 1, то на выходе будет 1. Это 1 означает истину, а 0 означает ложь. Предположим, что x равно 4, а y равно 5. Двоичное число 4 равно 100. Двоичное число 5 равно 101. При побитовой операции побитовое И равно 100. При выполнении операции И двух разных значений будет получено 0. Когда оба значения равны 1, тогда на выходе будет 1.

Согласно приведенной выше программе, переменная x имеет значение 4. Двоичное значение 4 равно 100. Переменная y имеет значение 5. Двоичное значение 5 равно 101. Переменная z имеет результат поразрядного И для x и y. Ответ — 100. Это 4. Следовательно, на выходе программы будет отображаться 4.

Что такое && (логическое И)?

Это логический оператор. Он используется для принятия решения на основе нескольких условий. Символ && представляет собой логическое И. При логическом И, если оба операнда не равны нулю, условие становится истинным. Когда переменная x содержит значение 1, а переменная y содержит значение 0, логическое И (x && y) ложно или 0. Один из примеров && следующий.

Согласно приведенной выше программе метка является переменной. Ему присваивается значение 65. В блоках else if сравнивается отметка. Оператор && используется для обозначения операции И. В else if (mark> = 60 && mark <75) проверяет, находится ли переменная mark между 60 и 75. Если оценка меньше 75 и больше или равна 60, оценка будет «B». . В else if (mark> = 45 && mark <60) компилятор проверит, находится ли оценка между 45 и 60. Если оценка больше или равна 45, а оценка меньше 60, тогда оценка будет 'C '. Эти два оператора включают логическое И (&&).

В чем сходство между & и &&?

  • Оба являются операторами программирования.

В чем разница между & и &&?

Резюме — & vs &&

Операторы используются для выполнения математических и логических операций. Операторы выполняют эти операции со значениями или переменными. Они известны как операнды. Некоторые операторы являются арифметическими операторами, операторами присваивания и т. Д. Арифметические операции содержат сложение, умножение и т. Д. Операторы присваивания присваивают значения из правых операндов левому операнду. Есть еще два оператора, называемые поразрядными операторами и логическими операторами. Побитовые операторы выполняют операции битового уровня. Логические операторы принимают решения на основе нескольких условий. В этой статье обсуждалась разница между & и &&. Разница между & и && в том, что & — это побитовый оператор, а && — логический.

Загрузите PDF-файл & vs &&

Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Пожалуйста, скачайте PDF-версию здесь: Разница между & и &&

Related Posts