Подскажите по JavaScript’у, -1 это типа true при сравнении значений оператором if?

Dmitriy_2014
На сайте с 01.07.2014
Offline
344
156

Всем привет!

Подскажите, значение -1 в JavaScript’е это как бы правда/true?

Вот допустим есть такой код:

if (document.cookie.indexOf("mycoolcookie") == -1) {

Какой-то код выполнится.

};

Тут как бы если куков нет то вернется -1, а -1 == -1, это типа true, true, вернет true и выполнится код.

А если кука есть то она типа текстовая, и сравнивается то ли с цифрой то ли с булевым значением, и вернет false, и код не выполнится.

Млин на самом деле я не понимаю, как это работает и почему -1?

А самое тупое что у меня все правильно работает, когда куки нет то выполняется код, а когда есть то не выполняется, но почему так и не втыкаю.

Заранее всем спасибо за ответы, не судите строго т.к. в булевой математике не очень шарю, да и в JS не всегда понимаю, что у них что, то ли true, то ли false.


L
На сайте с 10.02.2015
Offline
246
#1
indexOf возвращает -1, если элемента нет в массиве/строке
br.almighty
На сайте с 13.07.2021
Offline
87
#2
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#3
livetv #:
indexOf возвращает -1, если элемента нет в массиве/строке
Это я понял, а вот почему он возвращает false если кука есть.
L
На сайте с 10.02.2015
Offline
246
#4
Dmitriy_2014 #:
Это я понял, а вот почему он возвращает false если кука есть.

Потому что Вы сравниваете с -1

Если что-то есть, то там будет не -1 и условие не сработает, вернет false

if(5 == -1){
    //сюда не зайдем
}
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#5
livetv #:

Потому что Вы сравниваете с -1

Если что-то есть, то там будет не -1 и условие не сработает, вернет false

А, так он цифры возвращает и причем рандумные, я думал он то значение что в куке сравнивает.

Все я понял, он цифры сравнивает положительные.

Спасибо, примерно понял, положительные цифры, а если ничего нету то -1.
br.almighty
На сайте с 13.07.2021
Offline
87
#6
Dmitriy_2014 #:
цифры возвращает и причем рандумные

Почему рандомные? Не рандомные совсем. Описание метода indexOf смотрите, ссылку выше дал.

Dmitriy_2014 #:
положительные

Он и 0 может вернуть.

Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#7
br.almighty #:

Почему рандомные? Не рандомные совсем. Описание метода indexOf смотрите, ссылку выше дал.

Он и 0 может вернуть.

А да, если кука одна и та же, то не рандумные, цифра одна и та же, но если кука создастся званого, то цифра будет другая. Точно, точно они не рандумные, это когда я пересоздал куку то цифра изменилась.

Про 0 тоже полезно. Спасибо.
br.almighty
На сайте с 13.07.2021
Offline
87
#8
Dmitriy_2014 #:

А да, если кука одна и та же, то не рандумные, цифра одна и та же, но если кука создастся званого, то цифра будет другая. Точно, точно они не рандумные, это когда я пересоздал куку то цифра изменилась.

Про 0 тоже полезно. Спасибо.

да посмотрите как эти куки выглядят, увидите, что это строка обычная, где всё в кучу свалено. Потом поймете что как работает.

console.log(document.cookie)
console.log(typeof document.cookie)
A1
На сайте с 23.11.2011
Offline
142
#9
Сравнивать нужно только  однотипные значения строку со строкой, число с числом, булево с булевым.  Что там из них тру или фолс, сами разработчики не знают

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий