Javascript.RU

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

Непонятное поведение - console.log
Добрый вечер.
Обнаружил непонятное поведение функции console.log (или декримента?). Есть код следующего вида:

var x = [0, 1, 1, 0];
console.log(x);
x[1]--;
console.log(x);


По какой-то причине Хром (и новая опера) выводят в консоль оба раза [0, 0, 1, 0]. И только 10й IE выводит ожидаемый результат - сначала [0, 1, 1, 0], а потом [0, 0, 1, 0]. В других браузерах, кроме этих трёх, не проверял. Почему так происходит?
Ответить с цитированием
  #2 (permalink)  
Старый 26.11.2013, 18:41
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Artyom Посмотреть сообщение
Почему так происходит?
Потому что это ваши иллюзии...
Ответить с цитированием
  #3 (permalink)  
Старый 26.11.2013, 19:51
Интересующийся
Отправить личное сообщение для Artyom Посмотреть профиль Найти все сообщения от Artyom
 
Регистрация: 15.08.2013
Сообщений: 12

Сообщение от Rise Посмотреть сообщение
Потому что это ваши иллюзии...
Спасибо за ваше мнение.
Изображения:
Тип файла: jpg Ear7.jpg (124.0 Кб, 16 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 26.11.2013, 20:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Оно не только его...

Последний раз редактировалось ksa, 14.08.2019 в 15:01.
Ответить с цитированием
  #5 (permalink)  
Старый 26.11.2013, 20:43
Интересующийся
Отправить личное сообщение для Artyom Посмотреть профиль Найти все сообщения от Artyom
 
Регистрация: 15.08.2013
Сообщений: 12

Это прекрасно, но ведь и я не из головы это взял - точно так же привёл скриншот, сделанный буквально только что. Кто может объяснить такую аномалию?
Ответить с цитированием
  #6 (permalink)  
Старый 27.11.2013, 02:40
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Это происходит потому что консоль вебкитов кэширует обьект отображаемый в консоли и не перерисовывает его в реальном времени. ВИДИМО. можешь попробовать алертом и все будет работать, можешь попробовать выводить приметив console.log(x[1]) и все будет работать. такая вот особенность консоли в хроме, и ДА, она всех бесит
Ответить с цитированием
  #7 (permalink)  
Старый 27.11.2013, 10:31
Интересующийся
Отправить личное сообщение для Artyom Посмотреть профиль Найти все сообщения от Artyom
 
Регистрация: 15.08.2013
Сообщений: 12

Maxmaxmaximus3,
Спасибо. Я голову сломал, почему console.log выводит массив с нулём, а следующей строчкой элемент этого массива равным единице. Вот такой вот весёлый дебаггинг...
Ответить с цитированием
  #8 (permalink)  
Старый 27.11.2013, 12:31
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

breakpoint-ы тебя спасут
Ответить с цитированием
  #9 (permalink)  
Старый 27.11.2013, 18:09
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Maxmaxmaximus3
она всех бесит
Не отвечай за всех. Такая особенность позволяет видеть реальное состояние объекта. Для того, чтоб увидеть, как он меняется во времени, просто клонируй его.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #10 (permalink)  
Старый 28.11.2013, 03:37
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от FINoM
Не отвечай за всех.
Ты говоришь актуальное, актуальное оно на момент просмотра, и если ты просмотрел обьект, а потом что-то изменилось в нем, и ты еще раз его просмотришь, то изменений уже не будет, это баг а не фитча, при чем он необходим для оптимизации консоли и не для чего более. Но ты можешь переубедить меня: Приведи хотя бы один пример когда такое поведение консоли хорошо а не плохо.

Последний раз редактировалось Maxmaxmaximus3, 28.11.2013 в 07:54.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятное поведение в Chrome main.c Opera, Safari и др. 3 10.10.2013 18:52
ng-repeat кастомный фильтр для фильтрации обьектов (непонятное поведение) VerDiz Angular.js 10 04.08.2013 15:42
Непонятное поведение бордеров antserg (X)HTML/CSS 14 14.06.2013 09:10
непонятное поведение скрипта bpystep Общие вопросы Javascript 2 02.04.2012 00:48
Непонятное поведение полосы прокрутки в контейнере mouse_web Элементы интерфейса 10 27.09.2010 12:33