Есть ли разница в производительности в JavaScript между ">" и "! ="? - PullRequest
1 голос
/ 03 октября 2011

Выполнение привязки для предыдущей ссылки в навигации. Если мы на первой позиции, не делайте то же самое для предыдущей ссылки. Я делал "! =" Не равный тесту, но понял, что это может быть ">" больше

Тогда я подумал, один быстрее?

if (numberToCheck != 0) {
    //doSomething();
}

против

if (numberToCheck > 0) {
    //doSomething();
}

Ответы [ 4 ]

4 голосов
/ 03 октября 2011

Вопросы производительности должны решаться с помощью измерений, а не спекуляций.

Вы можете убедиться здесь http://jsperf.com/inequality-vs-greater-than. Результаты этого теста (на моем компьютере) зависят от браузера. Некоторые быстрее с неравенством. Некоторые быстрее с меньшими затратами. Вероятно, вы найдете гораздо большие различия в скорости в других областях вашего кода.

Если вы хотите проверить что-то немного отличающееся от того, что я положил в тест, просто добавьте свой собственный тест для сравнения.

1 голос
/ 03 октября 2011

Вы имеете в виду как ... абсолютное различие или "значимо другое"?

В любом случае это будет зависеть на 100% от базовой реализации виртуальной машины. Впрочем, может быть быстрее установить флаг и сделать этот флаг первым в && (для короткого замыкания), а числовая часть должна быть второй.

if (keepChecking && numberToCheck != 0) {
    keepChecking == false;
    // doSomething();
}

Опять же, зависит от ВМ, и я не могу поверить, что в любом случае это будет иметь большое значение.

0 голосов
/ 03 октября 2011

Я сделал тестовую страницу в jsperf:

http://jsperf.com/different-from

В Chrome на моем MacBook Pro они точно такие же.

0 голосов
/ 03 октября 2011

Как насчет -

if (numberToCheck !== 0) {
//doSomething();
}

На самом деле, я сомневаюсь, что человек мог заметить разницу. Кроме того, каждый движок js браузера может давать разные результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...