Хмм, действительно интересная идея, правда сделать вкладку не закрываемой под linux-chome я так и не смог.
Я зарепортил на хромиум. Надеюсь они поняли что я имею ввиду. (:
Про сон вы правы, увы и сейчас занимаюсь тем же. Не зря же сон идет первыми двумя пунктами рекомендаций (;
А вот jslint не обнаружил это, хотя я бы скорее удивился обратному.
Что логично, так как 'console.log(x)' это по сути 'JSON.stringify' с форматирование, обратной связью для формирования отступов и записью в stdout.
Просто зависаний от 'console.log''а ждут многие, а от сериализации нет.
Правда это скорее психология. Во всяком случае большинство знакомых программистов этому удивились.
Строгая типизация уменьшает риск человеческого фактора. И если говорить про молотки, то я бы сравнил строгую типизацию с толстой перчаткой, вроде бы и палец не всегда убережёт, и мешает иногда, но на стройке без перчаток не очень...
П.С.: Я за опциональную типизацию в JS.
Ну а что до указателей, то я как человек учивший в 12 лет первым серьёзным языком С++, без интернета и по учебнику C#, много их наелся постигая дзен.
Ну это весьма косвенная уязвимость, в том плане что и Array.apply(null, Array(0x7fffffff)) тоже можно такой считать, но в нормальной ситуации внешние данные не должны влиять на индексы массива. Ну и сериализация всегда опасное дело, которое требует повышенной внимательности.
Когда я сменил логику с books.push(book) на books[getId()] = book надо было еще и books = [] поменять на books = {}, но я этого не сделал, а JS за типами не следит, и при том что id цифровой воспринял это как номер ячейки.
Ну и соотвественно на JSON.stringify вывел все null перед ячейкой 2e+6*random. Точнее попытался...
Я зарепортил на хромиум. Надеюсь они поняли что я имею ввиду. (:
А вот jslint не обнаружил это, хотя я бы скорее удивился обратному.
Просто зависаний от 'console.log''а ждут многие, а от сериализации нет.
Правда это скорее психология. Во всяком случае большинство знакомых программистов этому удивились.
П.С.: Я за опциональную типизацию в JS.
Ну а что до указателей, то я как человек учивший в 12 лет первым серьёзным языком С++, без интернета и по учебнику C#, много их наелся постигая дзен.
books.push(book)
наbooks[getId()] = book
надо было еще иbooks = []
поменять наbooks = {}
, но я этого не сделал, а JS за типами не следит, и при том что id цифровой воспринял это как номер ячейки.Ну и соотвественно на JSON.stringify вывел все null перед ячейкой 2e+6*random. Точнее попытался...