Не удаляется переменная в цикле for()
Добрый день, написал такую функцию
function camelize() { var next_symbol_upper = true; for (var i = 0; i < 4; i++) { delete next_symbol_upper; console.log(next_symbol_upper); } } но почему-то в console.log выводитя true. Изучаю js может что-то упустил, подскажите пожалуйста. |
|
Удаляются только поля объектов, в том числе элементы массивов. Переменные в скопе не удаляются.
Кроме того сам оператор delete возвращает логческое значение. var x="test"; alert(delete x); alert(x); var y = {field:"test"}; alert(delete y.field); alert(JSON.stringify(y)); |
laimas, я так понимаю саму переменную из памяти уже никак не удалить, если мы ее определили? только поменять ее значение?
|
delete удаляет свойства из объекта и не влияет на имена переменных.
В примере по ссылке х будет свойством глобального объекта window и может быть удалено, а переменная y нет. |
Спасибо большое!
|
Походу это особенность связанная с оптимизацией обработки скопов. Если бы возможность реализовали, упала бы производительность и возрасли общие расходы памяти.
|
Часовой пояс GMT +3, время: 02:21. |