Freecodecamp: === не противоположно! ==

Созданный на 22 нояб. 2016  ·  13Комментарии  ·  Источник: freeCodeCamp/freeCodeCamp


Название испытания


https://www.freecodecamp.com/challenges/comparison-with-the-strict-inequality-operator

Описание проблемы


На самом деле! == не является противоположностью оператору строгого равенства. === означает равное значение И равный тип. ! == означает не равное значение или не равный тип. Это означает, что если одно условие истинно, выражение вернет истину. Но для оператора строгого равенства оба условия должны быть истинными. Я думаю, что эта информация должна быть предоставлена.

Информация о браузере

  • Имя браузера, версия: Google Chrome, 54.0.2840,99 м (64-разрядная версия)
  • Операционная система: Windows 10
  • Мобильный, настольный компьютер или планшет: настольный компьютер
help wanted

Самый полезный комментарий

Возможно, мне нравится идея добавить слово «логический», например:

Оператор строгого неравенства (! ==) является логической противоположностью оператора строгого равенства.

А затем, возможно, мы добавим ссылку MDN на сайт выше?

Все 13 Комментарий

Это не равное значение и / или не равный тип. Смотрите здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

Я думаю, что это мнение все еще верное. Но другие могут взвесить.

Мы могли бы переписать инструкции, чтобы отразить и / или природу !==

Операнд 1 | Операнд 2 | Состояние |
--------------- | ---------------- | ----------- |
«Одна строка» | «Другая строка» | true
1 | 2 | true
1 | '1' | true
4 | 4 | false
'Строка' | 'Строка' | false

@Bouncey, но разве !== является допустимой противоположностью === ? Или есть альтернатива, о которой я не знаю?

@dhcodes это так, а вроде нет

Проблема в этой строке в наших инструкциях по вызову

Оператор строгого неравенства ( !== ) противоположен оператору строгого равенства.

Если оператор строгого равенства требует, чтобы оба значения типа И были равны для разрешения как true , оператор строгого неравенства требует, чтобы либо тип ИЛИ значение было другим, чтобы разрешить как true .

Описывая это как «противоположное», мы подразумеваем, что тип и ценность должны отличаться, чтобы быть признанным истинным.

Мы могли бы переформулировать инструкции, чтобы отразить разницу в операторе строгого неравенства

С логической точки зрения, я думаю, что !== - это логическая противоположность === :
Если предположить, что === можно записать как Operand1 AND Operand2 , тогда обратное будет NOT(Operand1 AND Operand2) . Это можно записать как NOT(Operand1) OR NOT(Operand2) , что совпадает с !== . Тем не менее, я могу понять, в чем неоднозначность инструкций и почему это может сбивать с толку.

Я согласен с @dhcodes и @robbawebba. Пока я писал свои аргументы, Роб справился гораздо лучше. Единственное исключение - NaN , который не равен самому себе.
Я писал Codepen, чтобы подтвердить (каламбур) свои предположения. Если кто-то предпочитает примеры кода, вот мой беспорядок: http://codepen.io/Timoh/pen/ZBKBdL?editors=0012

Я не против его изменения; Я просто не уверен, что переписывание могло бы сделать это, не сделав это более запутанным для кемпера. Спасибо за пример @systimotic.

информация удалена

Больше не участвует

Я заметил, что многие мои друзья ошибаются в этой логике. В большинстве случаев люди говорят, что! == противоположно ===. Поэтому они предполагают, что имя ! == будет Не равное значение и равный тип. as === называется равным значением и равным типом . Кроме того, в большинстве случаев учащиеся являются новичками, поэтому я думаю, что следует упомянуть хотя бы имя. Это просто мое предложение.
http://www.w3schools.com/js/js_operators.asp

Возможно, мне нравится идея добавить слово «логический», например:

Оператор строгого неравенства (! ==) является логической противоположностью оператора строгого равенства.

А затем, возможно, мы добавим ссылку MDN на сайт выше?

Да, это хорошая идея ..... @ dhcodes

Если кто-то захочет поднять этот вопрос, вам нужно добавить в предложение слово logical :

Оператор строгого неравенства (! ==) противоположен оператору строгого равенства.

сделать это:

Оператор строгого неравенства (! ==) является логической противоположностью оператора строгого равенства.

и измените файл ссылок MDN, чтобы добавить ссылку на ссылку ниже, а затем добавьте ссылку MDN в задачу:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Non -identity_strict_inequality_ (!)

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

Я хотел бы поднять этот вопрос, возможно, понадобится помощь со ссылками MDN, хотя раньше этого не делал.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги