170 похожих чатов

Ну вы еще составьте тесты для {} + [] +

[{}]. А потом топите, как это можно не знать !?

40 ответов

25 просмотров

Ну а это тут причём?

Давайте не путать простые примеры с хрен пойми чем

ну-ка без подсказок скажи результат или джун

Да. Сам то не знает ответ))

ymdev- Автор вопроса

да упаси боже такое знать

@js_noobs_ru

ymdev- Автор вопроса

Тебе это никогда не пригодится. Собственно как и знание о том, что будет если число сложить со строкой и т.д. Делаешь явные приведения типов, либо вообще используешь typescript и никогда проблем не возникнет.

зануда-моуд: тайпскрипт это одна большая проблема хотя он и полезный в ряде случаев И даже часто с ним лучше, чем без него.

ymdev- Автор вопроса

просто потому что им надо уметь пользоваться? Да, есть много коряво-типизированных библиотек, но это уже проблемы не ts.

уметь пользоваться это основная проблема — то есть люди часто слишком полагаются на эти проверки, а в рантайме-то их нет и им внезапно прилетает нетипизированный жсон, а о проверке в рантайме они не подумали но он ещё и сам кривой, что тоже довольно неприятно

Отсутствие проверки в рантайме - это скорее проблема программиста, а не тайпскрипта.

а без тайпскрипта они бы о проверке жсона подумали бы?

Я наблюдал, что использование тайпскрипта часто понижает бдительность в этом отношении и даёт ложное ощущение того, что типы известны. Когда они в рантайме могут быть неизвестны. Если не налепить везде рантайм проверок.

Истина

это тебя здесь за флуд банили?

Так я же по факту ответил

это проблема тайпскрипта или же недостатки обучения?

ymdev- Автор вопроса

Ну если у тебя все на ts, то эти провери действительно не нужны. Но это если мы не трогаем входящие данные из вне, там действительно надо проверять все и в хвост и в гриву. А все внутренние данные вполне можно не проверять в рантайме

> Ну если у тебя все на ts, то эти провери действительно не нужны Вооот. Это ошибка, которая часто встречается. Нужны. Потому что входные данные. А ещё не всегда всё на тс, и если у нас либа — её могут юзать из жс.

runtime? Бегущее время?

ты только половину сообщения прочитал? )

Я апдейтнул.

так он написал тоже самое. проверки нужны только для входных данных

Да, но входные данные есть всегда. В каком-то виде.

в смысле никогда не пригодится? а сейчас в чате не пригодилось бы что ли? короче, джун

а вообще на самом деле интересное поведение у штуки справа. Сначала она, по видимому, в сочетании со стрингом преобразуется в объект {}, а затем объект сам преобразуется в стринг и получается забавный результат. Надо будет покопать почему массив с объектом внутри приводится к просто объекту, в то время как пустой массив приводится к пустой строке

а зачем копать? никто такой код не пишет

чисто для спортивного интереса

ymdev- Автор вопроса

даже не пытайся понять, что там происходит) Потому что есть такое https://github.com/aemkei/jsfuck И оно работает (с божьей помощью)

я писала недавно компиль брейнфака в джс. Брейнфак на самом деле логичнее большинства языков

Дело в том что {} в зависимости от положения может интерпретироваться и как объект и как пустой блок кода.

кароче я поняла, массив тупо выкидывает все что в нем есть, а затем все это добро интерпретируется как стринг. Те [{}] выдаст просто {}, ну и так далее. Веселые приключения в мире логики джс

весело)

"undefined" [ 0] // "u" [ "undefined" ][ 0][ 0] // "u" [ undefined +[] ][+[]][+[]] // "u" [ [][+[]] +[] ][+[]][+[]] // "u"

ахах оч похоже на объявление декларации смарт-контракта у меня на rust проекте)) без допинга не разобраться))

1. 0 индекс строки = u 2. 0 индекс массива = строка, 0 индекс строки = u 3. строка + [] = строка, вот это выражение '+[]' дает 0, дальше все как выше 4. '[][+[]] +[]' - а вот почему это дает "undefined" надо разобраться, спасибо)

4. тут расписаны все эти трюки, если не хочется самой ) https://github.com/aemkei/jsfuck

а, все гораздо проще, мы берем из пустого массива нулевой элемент, это нам дает андефайнд и мы тупо склеиваем андефайнд с пустой строкой, ну и получаем строку. Дальше как я уже выше писала Вполне логично)

наоборот самой интереснее

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта