Является ли тождественным сравнение?

255
26 июня 2017, 21:28

Привет. Является ли сравнение 0 !== someElement.length и someElement.length !== 0 тождественным?

И почему существует два типа таких записей?

Answer 1

Можно писать и так и так - нет разницы.

0 !== someElement.length называется Условия Йоды.

Обычно это применяют в условиях равенства, а не неравества, т.е. например 0 == someElement.length

А пишут так потому, что легко забыть дописать два раза = и в итоге в условии получалось вместо

if (someElement.length == 0) { ...

вот так

if (someElement.length = 0) { ...

В итоге вместо сравнения получалось присваивание. Ошибки конечно же не выскакивало, ибо валидное выражение и программа отрабатывала, но не так как планировалось.

При условии

if (0 = someElement.length) { ...

возникнет ошибка (ибо нельзя константе что-то присвоить), которую сразу можно пофиксить. А остальное уже как единообразие стиля

READ ALSO
Неверно деобфусцировал код

Неверно деобфусцировал код

Как-то раз, давным-давно я захотел минифицировать свой JS-код, но случайно зашёл на сайт, который помимо минификации ещё и обфусцирует егоЯ...

311
Не работает IndexOf

Не работает IndexOf

Здравствуйте! Есть данный участок кода:

426