Я просто пробирался через исходный код QUnit (1.12.0) и наткнулся на строку, которая меня смутила. Я немного поработал в поисковых системах и не смог найти причины для этого.В чем смысл !! в JavaScript?
Источник: http://code.jquery.com/qunit/qunit-1.12.0.js линии 520
result = !!result;
появляется нечто подобным далее в коде, за исключением того, вместо того, чтобы хранить результат сам по себе, этому хранению двойного отрицания переменного в формате JSON.
Источник: http://code.jquery.com/qunit/qunit-1.12.0.js линия 957
result: !!result
Как! отрицает, полагаю !! будет отрицать, а затем снова отрицать, таким образом заканчивая тем, с чего вы начали. В этом случае, что достигается установкой переменной, равной самой себе, дважды сбрасывается? (Или в последнем примере, возвращаясь дважды, вместо того, чтобы просто возвращаться.)
довольно много бросает аргумент в boolean – MightyPork
Это нужно проверить [правша] (http://james.padolsey.com/javascript/truthy-falsey/) значение – tewathia