Return! 1 в javascript
Я только что встретил функцию в javascript, которая имеет return !1
Мне просто интересно, что это на самом деле означает?
Зачем вам return !1
или return !0
Может кто-нибудь объяснить, что это значит?
Вот функция, с которой я столкнулся:
function convertStringToBoolean(a) {
typeof a == "string" && (a = a.toLowerCase());
switch (a) {
case "1":
case "true":
case "yes":
case "y":
case 1:
case !0:
return !0;
default:
return !1
}
}
Спасибо заранее!
Ответы
Ответ 1
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.
Ответ 2
Это, кажется, особенно глупый способ возврата true
или false
Ответ 3
Здесь код проверяется:
- ничего не возвращает или ничего не делает в этих случаях:
"case 1", "case true", "case yes", "case y", "Case 1"
- и когда дело:
"case !0"
return "true"
- когда ни один из вышеуказанных случаев не удовлетворен по умолчанию, он возвращает "false"