Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2019, 08:05
Новичок на форуме
Отправить личное сообщение для X-Clusiv Посмотреть профиль Найти все сообщения от X-Clusiv
 
Регистрация: 19.12.2019
Сообщений: 8

Изучаю JS вопрос == ===
Доброго времени суток гуру js. Пишу вам короткий но интересующий меня вопрос. Не знаю как правильно его сформулиовать гуглу. Выдает не то что ищу.
Суть вопроса. Есть два оператора сравнения == и === Знаю что они делают. Но вот в плане затрата ресурсов на вычисления, сильно ли они отличаются? К примеру есть скрипт с миллионом операция сравнения == и такая же программа с миллионом сравнений === на сколько будет различаться производительность?
Понимаю что вопрос дурацкий, но все же, мне это интересно. Благодарю за ответы.
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2019, 08:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

X-Clusiv, ранее тут давались ссылки на онлайн ресурсы по замеру производительности скриптов JS... Типа такого

Ты размещаешь два скрипта для сравнения и ресурс гоняет их... Потом показывает кто результативнее.

Последний раз редактировалось ksa, 19.12.2019 в 08:44.
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2019, 08:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Я потестировал такой код
var a=1;
if (a==1) {};

и
var a=1;
if (a===1) {};

Первый
≈ 1 993 753 выполнений/1000 мс
Второй
≈ 2 017 620 выполнений/1000 мс
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2019, 09:07
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Чуть поменял...
var a=1;
if (a==1) {};
var b='test';
if (b=='test') {};

≈ 2 000 153 выполнений/1000 мс
var a=1;
if (a===1) {};
var b='test';
if (b==='test') {};

≈ 2 024 904 выполнений/1000 мс
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2019, 09:09
Новичок на форуме
Отправить личное сообщение для X-Clusiv Посмотреть профиль Найти все сообщения от X-Clusiv
 
Регистрация: 19.12.2019
Сообщений: 8

Сообщение от ksa Посмотреть сообщение
Я потестировал такой код
var a=1;
if (a==1) {};

и
var a=1;
if (a===1) {};

Первый
≈ 1 993 753 выполнений/1000 мс
Второй
≈ 2 017 620 выполнений/1000 мс
То есть использование === судя по результатам шустрее обычного ==, верно понимаю?
Ответить с цитированием
  #6 (permalink)  
Старый 19.12.2019, 09:15
Новичок на форуме
Отправить личное сообщение для X-Clusiv Посмотреть профиль Найти все сообщения от X-Clusiv
 
Регистрация: 19.12.2019
Сообщений: 8

Сообщение от ksa Посмотреть сообщение
Чуть поменял...
var a=1;
if (a==1) {};
var b='test';
if (b=='test') {};

≈ 2 000 153 выполнений/1000 мс
var a=1;
if (a===1) {};
var b='test';
if (b==='test') {};

≈ 2 024 904 выполнений/1000 мс
У меня на этом сайте получаются разные результаты. то в пользу 1ого(==) то в пользу 2ого(===) но уже подчеркнул для себя что разница не велика. Спасибо за ответ!
Ответить с цитированием
  #7 (permalink)  
Старый 19.12.2019, 09:20
Новичок на форуме
Отправить личное сообщение для X-Clusiv Посмотреть профиль Найти все сообщения от X-Clusiv
 
Регистрация: 19.12.2019
Сообщений: 8

Сообщение от ksa Посмотреть сообщение
Чуть поменял...
var a=1;
if (a==1) {};
var b='test';
if (b=='test') {};

≈ 2 000 153 выполнений/1000 мс
var a=1;
if (a===1) {};
var b='test';
if (b==='test') {};

≈ 2 024 904 выполнений/1000 мс
И любопытно что если меняешь скрипты местами(с левой области на правую и наоборот), то результат чаще в всего лучше у правой области, также, если бы и не менял их местами. Возможно эта погрешность на аппаратном уровне и архитектуре.
Ответить с цитированием
  #8 (permalink)  
Старый 19.12.2019, 10:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от X-Clusiv
подчеркнул для себя что разница не велика
Такие вот выводы...

Сообщение от X-Clusiv
результат чаще в всего лучше у правой области
Ну тот ресурс не претендует на какой-то абсолют...
Но выводы делать можно.
Ответить с цитированием
  #9 (permalink)  
Старый 19.12.2019, 11:08
Новичок на форуме
Отправить личное сообщение для X-Clusiv Посмотреть профиль Найти все сообщения от X-Clusiv
 
Регистрация: 19.12.2019
Сообщений: 8

Сообщение от ksa Посмотреть сообщение
Такие вот выводы...


Ну тот ресурс не претендует на какой-то абсолют...
Но выводы делать можно.
огромное спасибо за помощь. Тут темы закрывать нужно? если да то как? а то не вижу заветной кнопки.
Ответить с цитированием
  #10 (permalink)  
Старый 19.12.2019, 11:11
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

"===" не делает приведения типов, конечно же он должен быть быстрее (сравниваются сырые данные, вместе с байтом обозначения типа). Это во всех языках так.

P.S.: а чего на ложном равенстве не проверили (3333==='test')?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте парни) такой вопрос, можно ли както упростить эту конструкцию?) Svyatik95 Общие вопросы Javascript 1 28.07.2016 09:51
Вопрос по js HELP komandor32 Общие вопросы Javascript 1 08.01.2014 23:28
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
Вопрос знатока JS adamasantares jQuery 4 25.05.2011 18:37
Вопрос к гуру. Title через js. Не выводит title из тега <TR> shkur Элементы интерфейса 24 19.06.2008 09:03