index >= 0 && count++;
Первая часть: index >= 0
возвращает true, если index
имеет значение, которое больше или равно 0
.
Вторая часть: a && b
большинство языков в стиле C сокращают логические операторы ||
и &&
.
Для операции ||
вам нужно только знать, что первый операнд - true
ився операция вернет true
.
Для операции &&
вам нужно только знать, что первый операнд равен false
, а вся операция вернет false
.
* 1025.* Третья часть:
count++
count++
эквивалентно count += 1
эквивалентно count = count + 1
Все вместе теперь
Если первый операнд (index >= 0
) строки оценивается как true
, второй операнд (count++
) оценивает, поэтому он эквивалентен:
if (index >= 0) {
count = count + 1;
}
нюансы JavaScript
JavaScript отличается от других Cязыки стиля в том смысле, что он имеет концепцию значений truthy
и falsey
.Если значение оценивается как false
, 0
, NaN
, ""
, null
или undefined
, оно равно falsey
;все остальные значения: truthy
.
||
и &&
операторы в JavaScript не возвращают логические значения, они возвращают последний выполненный операнд.
2 || 1
вернет 2
, поскольку первый операнд возвратил значение truthy
, true
или что-либо еще, всегда вернет true, поэтому больше не нужно выполнять операцию.В качестве альтернативы null && 100
вернет null
, поскольку первый операнд вернул значение falsey
.