for(var key in object){
//process object[key]
}
или простоДолжны ли вы создать var внутри цикла for-in?
for(key in object) {
//process object[key]
}
Есть ли разница?
for(var key in object){
//process object[key]
}
или простоДолжны ли вы создать var внутри цикла for-in?
for(key in object) {
//process object[key]
}
Есть ли разница?
Да, есть разница. Независимо от того, используете ли вы var или нет, key
по-прежнему будет переменной, и его «жизнь» на самом деле не закончится после того, как будет выполнена for
, ее объем будет охватывать до конца функции. Но если вы не используете var
- key
будет глобальным.
Есть разница. Если вы еще не объявили key
, var key
объявит key
. Если у вас есть, это переоценка и не очень хорошая вещь, но это не имеет большого значения.
Если вы еще не объявили об этом, не объявляя его и не используя его, как в вашем втором примере, это плохо. Он просачивается по всему миру, break in strict mode, и будет медленным.
Если вы ищете рекомендацию, всегда используйте для нее var, она является более безопасной (поскольку ее область действия является наименьшей возможной) и быстрее (поскольку переводчику не придется искать, если переменная уже существует во всем глобальном масштабе). Плюс это recommanded by Google.
ключ во втором случае можно удалить, используя ключевое слово delete – bugwheels94
Что вы имеете в виду? –
см. Последние две строки этой статьи https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FWorking_with_Objects – bugwheels94