Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2017, 18:29
Новичок на форуме
Отправить личное сообщение для kraker Посмотреть профиль Найти все сообщения от kraker
 
Регистрация: 06.12.2011
Сообщений: 6

Не удаляется переменная в цикле 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 может что-то упустил, подскажите пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2017, 18:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

https://developer.mozilla.org/ru/doc...erators/delete
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2017, 18:40
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Удаляются только поля объектов, в том числе элементы массивов. Переменные в скопе не удаляются.
Кроме того сам оператор delete возвращает логческое значение.
var x="test";
alert(delete x);
alert(x);
var y = {field:"test"};
alert(delete y.field);
alert(JSON.stringify(y));
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2017, 18:42
Новичок на форуме
Отправить личное сообщение для kraker Посмотреть профиль Найти все сообщения от kraker
 
Регистрация: 06.12.2011
Сообщений: 6

laimas, я так понимаю саму переменную из памяти уже никак не удалить, если мы ее определили? только поменять ее значение?
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2017, 18:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

delete удаляет свойства из объекта и не влияет на имена переменных.

В примере по ссылке х будет свойством глобального объекта window и может быть удалено, а переменная y нет.
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2017, 18:46
Новичок на форуме
Отправить личное сообщение для kraker Посмотреть профиль Найти все сообщения от kraker
 
Регистрация: 06.12.2011
Сообщений: 6

Спасибо большое!
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2017, 18:46
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Походу это особенность связанная с оптимизацией обработки скопов. Если бы возможность реализовали, упала бы производительность и возрасли общие расходы памяти.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простейший калькулятор на JS. Нужна помощь. Siverena Общие вопросы Javascript 2 06.04.2017 13:42
Таймер до требуемой даты в цикле Drugpunker Events/DOM/Window 22 21.03.2014 08:52
Переменная в цикле Павел Пичужкин Общие вопросы Javascript 7 19.01.2013 17:47
popup окно в PHP цикле ryobi522 Общие вопросы Javascript 5 10.02.2012 02:18
Переменная в цикле Snipe Общие вопросы Javascript 2 25.09.2008 17:39