Код-фрагмент 1:
if ( !x ) { /* do stuff */ }
Код-фрагмент 2:
if ( x == 0 ) { /* do stuff */ }
Для каких значений x
эти два фрагмента кода отличаются?
Я спрашиваю, потому что, хотя я читал главу в ==
в спецификации, мне все еще трудно справляться с ситуациями, подобными приведенным выше (там, где они объединены с ToBoolean принуждением).
btw, я хочу знать это только ради того, чтобы знать это (я хочу понять язык), поэтому не беспокойтесь, рассказывая мне о ===
или спрашивая меня, что такое x
.
Обновление: Я исправил фрагмент кулака. Я имел в виду !x
.