return !1
означает return false
и return !0
- return true
. В спецификации - 11.4.9 Логический оператор NOT - когда вы размещаете! напротив, результат оценивается как Boolean, и возвращается обратное.
var a = 1, b = 0;
var c = a || b;
alert ( "c=" + c + " " + typeof c ); // here c will be number
a = !0, b = !1;
c = a || b;
alert ( "c=" + c + " " + typeof c ); // here it will be boolean
Я в основном вижу это в коде, прошедшем через оптимизатор Google. Я думаю, что в основном это делается для достижения короткого кода.
Он часто используется, когда необходим логический результат - вы можете увидеть что-то вроде !!(expression)
. Например, поиск в jQuery.
Я рекомендую вам вдохновиться некоторыми проектами с открытым исходным кодом, которые прибегают к этой конкретной задаче или просто используют ее, например django-carton , которая является простым и легким приложением для тележек покупок и списков пожеланий.