Robiąc wiązanie poprzedniego linku w NAV. Jeśli jesteśmy na pierwszej pozycji, nie rób tego samego dla poprzedniego linku. Robiłem "! =" Nie jest równy test, ale zdali sobie sprawę, że może to być ">" większa niż.

Potem myślałem, jest szybszy?

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

Vs.

if (numberToCheck > 0) {
    //doSomething();
}
1
folktrash 3 październik 2011, 20:37

4 odpowiedzi

Najlepsza odpowiedź

Pytania o wydajność należy rozwiązać za pomocą pomiaru, a nie spekulacji.

Możesz zobaczyć dla siebie tutaj http://jsperf.com/inequality-v-vs-greater-than. Wyniki tego testu (na moim komputerze) różnią się w zależności od przeglądarki. Niektóre są szybsze z nierównością. Niektóre są szybsze z mniej niż. Prawdopodobnie znajdziesz znacznie większe różnice prędkości w innych obszarach twojego kodu.

Jeśli chcesz przetestować coś nieznacznie innego niż wkładam test, po prostu dodaj swój własny test do porównania.

4
jfriend00 3 październik 2011, 16:48

Czy masz na myśli ... różnica absolutna lub "znacząco inny"?

W każdym razie zależy to w 100% na implementacji bazowej VM. Może być szybciej , aby ustawić flagę i mieć tę flagę jako pierwszą w && (w celu krótkiego obwodu) i mieć sekundę numeryczną sekundę.

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

Ponownie, zależny VM i nie mogę uwierzyć, że to znacząco na wiele drogi.

1
Dave Newton 3 październik 2011, 16:42

Co powiesz na -

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

Właściwie wątpię, że człowiek może zauważyć różnicę. Plus, każdy silnik js może przynieść różne wyniki.

0
Kris Krause 3 październik 2011, 16:40

Zrobiłem stronę testową w JSPERF:

http://jsperf.com/different-From.

W Chrome na moim MacBook Pro są dokładnie takie same.

0
KaptajnKold 3 październik 2011, 16:53