Почему браузеры сваливаются на цикле от 1 до 10000?

for (let i=0; i<10000; i++) {
console.log(typeof null === 'undefined')
}
Попробуйте запустить этот код в Хроме и FF. У меня результат довольно неожиданный
1433f1349b3c4eb793f2e17244328643.png38228f8fcd28475a8a59efda497e6126.png
  • Вопрос задан
  • 984 просмотра
Пригласить эксперта
Ответы на вопрос 2
alsopub
@alsopub
Видимо ноги растут от https://habrahabr.ru/post/200664/
Ответ написан
Комментировать
@vshvydky
передумал ответ, почему проблема в let не знаю, но корни оттуда
for (let a = 0; a<10000;a++){console.log(typeof null === 'object');}
4099: true
5901: false

for (var a = 0; a<10000;a++){console.log(typeof null === 'object');}
10000: true


И ваше сравнение typeof null === 'undefined' все равно не работает, так как не смотря на официально заявленное typeoff null - object является ошибкой, там нет undefined

В дополнение к тому, что это поведение именно браузера и его неопределенность скрипт запущенный в ноде:
'use strict';
let valTrue = 0;
let valFalse = 0;
for(let a = 0; a< 10000;a++){
  if(typeof null === 'object') {
    valTrue++;
  }else {
    valFalse++;
  }
}
console.log('TRUE: '+valTrue+' FALSE: '+valFalse);

Результат TRUE: 10000 FALSE: 0
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы