null
, undefined
и пустая строка (""
) - все значения 'falsey' в JavaScript; это означает, что если вы передадите их в оператор !
, результат будет true
. Вы можете проверить это в своей консоли, запустив !("")
, !(null)
или (для undefined
), определив var x;
и затем вызвав !x
.
Более того, if
оператор на самом деле не проверяет, равно ли его условие true
, он проверяет, является ли условие «истинным» (т. е. оценивается как false
при прохождении через !
).
Следовательно, все вы необходимо установить условие оператора if
равным document.getElementById('typer').value
, поскольку до тех пор, пока значение элемента не является нулевым, неопределенным или пустой строкой (или ложью, которая также является ложной), условие это правда.