Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
//create a list of rules to block
var blockRules = ["http://example.com/images/*",
"*://example.org/css/*"];
// add them to the content blocker
for (var rule in blockRules) {
opera.extension.urlfilter.block.add(blockRules[rule])
}
Экзампле из официальной документации одного браузера, отчаянно пытающегося прекратить катиться в сраное говно и набрать популярность.
Будет растащено хомячками на копипасту.
И, striker, убери уже этот долбанный trim для leading spaces
Можно было добавить Object.seal(blockRules); - это даже IE вроде поддерживает. Но проблема, что в какой-то из реализаций [].isPropertyEnumerable("length") == true. И с этим уже, ну кроссбраузерно точно ничего не сделать.
Конвертации о которых идет речь будут происходить в любом случае, т.как тип переменной нигде не хранится и определяется по ситуации, так что это никак не повлияет на производительность. В смысле, она все равно будет плохой, ну только если не используется ES4 со строгой типизацией (я таких сайтов не видел).
wtf? к чему это всё? зачем изъебываться если есть цикл for от 0 до length-1 со счетчиком типа Number (и ВНЕЗАПНО тип совпадает с индексатором массивов)
Еще раз, тип внезапно ни с чем не совпадает, JavaScript не хранит информацию о типе, а каждый раз при обращении к свойству, на месте, решает какой тип использовать. А сказано это было к тому, что конвертация типов для данного примера не является ухудшением или улучшением, она все равно происходит, хотите вы или нет. Реализации JavaScript могут оптимизировать работу циклов, например, предположив, что итератор должен быть числом, но они не обязаны это делать.
Лазал в ECMA-262, там они в горних облаках абстракции витают и действительно ни слова про имплементацию, и индекс предлагают приводить toInt32. Зато нашелся еще один довод за то, что for (string in array) - говно, это - освященная спецификацией неопределенность порядка энумерации.
неужели надо объяснять?
в каждой итерации, а за изменения прототипа будет анально карать всемирная организация здравоохранения
Конвертации о которых идет речь будут происходить в любом случае, т.как тип переменной нигде не хранится и определяется по ситуации, так что это никак не повлияет на производительность. В смысле, она все равно будет плохой, ну только если не используется ES4 со строгой типизацией (я таких сайтов не видел).