вернуться к уроку

Что выведет этот код (||=, &&=)?

важность: 2

Что выведет код ниже?

let value = NaN;

value &&= 10;
value ||= 20;
value &&= 30;
value ||= 40;

alert(value);

Ответ: 30.

let value = NaN;

value &&= 10;
value ||= 20;
value &&= 30;
value ||= 40;

alert(value);

Порядок выполнения данного кода:

  1. value &&= 10
    • value=NaN
    • NaN конвертируется в логическое значение false
    • value ложно, поэтому присваивание не срабатывает
  2. value ||= 20
    • value=NaN
    • NaN конвертируется в логическое значение false
    • value ложно, поэтому присваивание срабатывает
  3. value &&= 30
    • value=20
    • 20 конвертируется в логическое значение true
    • value истинно, поэтому присваивание срабатывает
  4. value ||= 40
    • value=30
    • 30 конвертируется в логическое значение true
    • value истинно, поэтому присваивание не срабатывает