Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Изучаю JS вопрос == === (https://javascript.ru/forum/css-html/79110-izuchayu-js-vopros-%3D%3D-%3D%3D%3D.html)

X-Clusiv 19.12.2019 08:05

Изучаю JS вопрос == ===
 
Доброго времени суток гуру js.:write: Пишу вам короткий но интересующий меня вопрос. Не знаю как правильно его сформулиовать гуглу. Выдает не то что ищу.
Суть вопроса. Есть два оператора сравнения == и === Знаю что они делают. Но вот в плане затрата ресурсов на вычисления, сильно ли они отличаются? К примеру есть скрипт с миллионом операция сравнения == и такая же программа с миллионом сравнений === на сколько будет различаться производительность?:-E
Понимаю что вопрос дурацкий, но все же, мне это интересно. Благодарю за ответы.:victory:

ksa 19.12.2019 08:41

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

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

ksa 19.12.2019 08:45

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

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

Первый
≈ 1 993 753 выполнений/1000 мс
Второй
≈ 2 017 620 выполнений/1000 мс

ksa 19.12.2019 09:07

Чуть поменял...
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 мс

X-Clusiv 19.12.2019 09:09

Цитата:

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

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

Первый
≈ 1 993 753 выполнений/1000 мс
Второй
≈ 2 017 620 выполнений/1000 мс

То есть использование === судя по результатам шустрее обычного ==, верно понимаю?

X-Clusiv 19.12.2019 09:15

Цитата:

Сообщение от ksa (Сообщение 517753)
Чуть поменял...
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ого(===) но уже подчеркнул для себя что разница не велика. Спасибо за ответ!

X-Clusiv 19.12.2019 09:20

Цитата:

Сообщение от ksa (Сообщение 517753)
Чуть поменял...
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 мс

И любопытно что если меняешь скрипты местами(с левой области на правую и наоборот), то результат чаще в всего лучше у правой области, также, если бы и не менял их местами. Возможно эта погрешность на аппаратном уровне и архитектуре.

ksa 19.12.2019 10:04

Цитата:

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

Такие вот выводы... :)

Цитата:

Сообщение от X-Clusiv
результат чаще в всего лучше у правой области

Ну тот ресурс не претендует на какой-то абсолют... :D
Но выводы делать можно.

X-Clusiv 19.12.2019 11:08

Цитата:

Сообщение от ksa (Сообщение 517761)
Такие вот выводы... :)


Ну тот ресурс не претендует на какой-то абсолют... :D
Но выводы делать можно.

огромное спасибо за помощь.:thanks: Тут темы закрывать нужно? если да то как? а то не вижу заветной кнопки.

Белый шум 19.12.2019 11:11

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

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


Часовой пояс GMT +3, время: 21:07.