Size: a a a

JavaScript — русскоговорящее сообщество

2020 February 11

AE

Alexey Ermakov in JavaScript — русскоговорящее сообщество
Maria Sokolova
Чтобы не выстрелить себе в ногу.

Условный пример:
Пришёл тебе с бэка массив строк, ты внутри цикла проверяешь значения на истинность, а потом что-то с ними делаешь.
Непустая строка типа ' ' будет преобразована в true, что в будущем приведёт к багам
неявные проверки не очень нравятся движкам - им приходится угадывать, чего же хотел программист - это минус к производительности
т.е. в любой ситуации if (undefined !== x) лучше, чем if(x)
источник

MS

Maria Sokolova in JavaScript — русскоговорящее сообщество
+, но с этим никто и не спорит
источник

AE

Alexey Ermakov in JavaScript — русскоговорящее сообщество
туда же и с объектами и с массивами.
только логику нужно самостоятельно писать, что для вас false, а что true
и не нужно вспоминать каждый раз что там к чему приводится.
источник

L

Lee Armstrong in JavaScript — русскоговорящее сообщество
Vlad
А какое может быть применение?
я не хочу тебе говорить, потому что я тебя за говно не держу
источник

V

Vlad in JavaScript — русскоговорящее сообщество
Alexey Ermakov
неявные проверки не очень нравятся движкам - им приходится угадывать, чего же хотел программист - это минус к производительности
т.е. в любой ситуации if (undefined !== x) лучше, чем if(x)
if(x) ничего нелегального, просто проверка на все falsy значения
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Maria Sokolova
Чтобы не выстрелить себе в ногу.

Условный пример:
Пришёл тебе с бэка массив строк, ты внутри цикла проверяешь значения на истинность, а потом что-то с ними делаешь.
Непустая строка типа ' ' будет преобразована в true, что в будущем приведёт к багам
Я буду делать !!item.trim().length
источник

V

Vlad in JavaScript — русскоговорящее сообщество
Lee Armstrong
я не хочу тебе говорить, потому что я тебя за говно не держу
Да причем тут дерьмо, мне рли интересно где это может пригодиться
источник

MS

Maria Sokolova in JavaScript — русскоговорящее сообщество
Кирилл mrDoode
Я буду делать !!item.trim().length
"неявные проверки не очень нравятся движкам - им приходится угадывать, чего же хотел программист - это минус к производительности"
источник

AE

Alexey Ermakov in JavaScript — русскоговорящее сообщество
Vlad
if(x) ничего нелегального, просто проверка на все falsy значения
if (obj !== undefined) { return obj.x; }

->

23 cmpq [r13-0x60],rax
27 jz 72
источник

AE

Alexey Ermakov in JavaScript — русскоговорящее сообщество
if (obj) { return obj.x; }

->

27 cmpq [r13-0x40],rax
31 jz 128
37 test al,0x1
39 setzl bl
42 movzxbl rbx,rbx
45 cmpl rbx,0x0
48 jnz 185
54 cmpq [r13-0x38],rax
58 jz 128
64 movq rdx,[rax-0x1]
68 testb [rdx+0xc],0x10
72 jnz 128
78 cmpq [r13+0x50],rdx
82 jz 160
....
160 vmovsd xmm0,[rax+0x7]
165 movq [rbp-0x18],rbx
169 vxorpd xmm1,xmm1,xmm1
173 vucomisd xmm1,xmm0
177 jz 128
179 movq rbx,[rbp-0x18]
183 jmp 88
185 movq [rbp-0x18],rbx
189 cmpq rax,0x0
193 jz 128
195 movq rbx,[rbp-0x18]
199 jmp 88
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Maria Sokolova
"неявные проверки не очень нравятся движкам - им приходится угадывать, чего же хотел программист - это минус к производительности"
false == 0 это неявная проверка?
источник

AE

Alexey Ermakov in JavaScript — русскоговорящее сообщество
разница очевидна
источник

MS

Maria Sokolova in JavaScript — русскоговорящее сообщество
Кирилл mrDoode
false == 0 это неявная проверка?
== происходит неявное приведение типов
!!   происходит приведение типов
if (x) происходит неявное приведение типов


if (x === true)  это проверка без приведения типов
(x !== true)  это проверка без приведения типов
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Maria Sokolova
== происходит неявное приведение типов
!!   происходит приведение типов
if (x) происходит неявное приведение типов


if (x === true)  это проверка без приведения типов
(x !== true)  это проверка без приведения типов
Ок
источник

L

Lee Armstrong in JavaScript — русскоговорящее сообщество
Vlad
Да причем тут дерьмо, мне рли интересно где это может пригодиться
В сфере наеба препода. Мы завтра пишем тест вместо экзамена, а тест этот простая веб-страничка. Ищу спосоны наебать и не спалиться.
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Ну тогда да, достаточно делать явную проверку и не ебать себе мозги
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
А когда на собесе спросят про неявную проверку, ответить, что ты такой хернёй не занимаешься, потому что она способствует появлению багов
источник

MS

Maria Sokolova in JavaScript — русскоговорящее сообщество
Кирилл mrDoode
Ну тогда да, достаточно делать явную проверку и не ебать себе мозги
В чужом коде может быть всё, что угодно
источник

ᐺ ! ᖇ ᖶ ᒪ in JavaScript — русскоговорящее сообщество
привет, кто может объяснить почему иногда в куках появляется дубликат с тем же именем? и почему так происходит?
источник

ᐺ ! ᖇ ᖶ ᒪ in JavaScript — русскоговорящее сообщество
источник