Подтвердить что ты не робот

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
    }
}

Спасибо заранее!

4b9b3361

Ответ 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"