Какова цель использования символа присваивания в операторе if?

В большинстве ответов указано, что символ = используется в качестве оператора присваивания.

Действительно, это соответствует тому, чему я научился во время изучения программирования.

Я столкнулся с этой проблемой при использовании программного обеспечения для сканирования SonarQube: CWE-481: присвоение вместо сравнения

Как показано выше, эта проблема обнаружена в более старой версии jQuery, и отрывок выглядит следующим образом:

Задание в этом сегменте находится в другом месте:

Какова цель этого подхода?

Всегда ли существуют ИСТИННЫЕ условия? (если я не правильно понял).

Является ли этот подход целям организации кода,

помогает ли это в будущем обслуживании и читабельности кода, или это просто ошибка в использовании?

«Несмотря ни на что, это всегда будет Правдой». вы уверены? Можно ли присвоить ложное значение?

VLAZ 18.07.2024 10:32

@VLAZ Я не уверен. Пожалуйста, дайте мне знать, если это неправда.

Hsinhsin Hung 18.07.2024 10:33

@VLAZ да, согласен. Кажется, что это сделано намеренно, но я думаю, что версия while — опечатка. В любом случае, это очень двусмысленно и неясно по смыслу. По крайней мере, это провалило бы мой обзор кода :)

Rory McCrossan 18.07.2024 10:34

Вы утверждали, что это всегда правда. Но я не могу это проверить.

VLAZ 18.07.2024 10:34

@RoryMcCrossan if тоже верно. Если есть значение — присвойте это значение объекту. Если значение ложно — не присваивайте его.

VLAZ 18.07.2024 10:35

@RoryMcCrossan Не думаю. Если заголовок присутствует, он будет присвоен lastModified и оценен как правдивый.

Robby Cornelissen 18.07.2024 10:35

«Какова цель такого подхода?» - Краткость и чувство самодовольства.

Dai 18.07.2024 10:35

Предположительно, если ответ не имеет этого заголовка, возвращаемое значение (и, следовательно, результат выражения присваивания) будет false-y. В противном случае вам придется сделать два шага: const lastModified = jqXHR.getResponseHeader("Last-Modified"); if (lastModified) { ... }

jonrsharpe 18.07.2024 10:35
a problem found in ... jQuery это их миссия
Jaromanda X 18.07.2024 10:42

Чтобы научить меня этим знаниям.

Hsinhsin Hung 18.07.2024 10:54
if (lastMod = somefunc()) { ... — это просто сокращение от lastMod = somefunc(); if (lastMod) { .... Большинство IDE (например, jsfiddle ) выдают это как предупреждение, поскольку это выглядит как ошибка. Добавление скобок может убрать это предупреждение: if ((lastMode=somefunc())) {. См. MDN «выражение присваивания само по себе имеет значение», поэтому вы можете сделать let y; let x = y = 2
fdomn-m 18.07.2024 11:48

@fdomn-m Доброе утро. Спасибо.

Hsinhsin Hung 19.07.2024 02:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
12
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

function ifAssignment() {
  let a,b,c,d;
  if ((a = true)) {
    console.info("a", a);
  }
  if ((b = false)) {
    console.info("b", b);
  }
  if ((c = "c")) {
    console.info("c", c);
  }
  if ((d = "")) {
    console.info("d", d);
  }
}

ifAssignment()

Результаты показывают, что присваивание в элементе управления if может быть либо истинным, либо ложным.

Или, другими словами, результатом задания является то, что было назначено. например. (a = 'hello')результат hello,. Тогда, конечно, результат этого может быть правдивым или нет.

Keith 18.07.2024 10:53

Благодаря вашему дополнению кода. Это легко понять.

Hsinhsin Hung 18.07.2024 11:12

Другие вопросы по теме