Что быстрее: if (var == 'value') ИЛИ if (/value/.test(var)) - PullRequest
5 голосов
/ 21 декабря 2011

Что быстрее:

if (var == 'value')

или

if (/value/.test(var))

Ответы [ 3 ]

8 голосов
/ 21 декабря 2011

if(var == 'value').По многим.Но если вы действительно хотите быстро, сделайте if(var === 'value').Строгая эквивалентность требует гораздо меньше работы, чем эквивалентность по типу.

6 голосов
/ 21 декабря 2011

if (a == 'b') будет быстрее, чем if (/b/.test(a)), но это не идентичные вызовы.

'something' == 'some' равно false, тогда как /some/.test('something') равно true.

Единственная причина для перехода с одного на другое будет, если другой более уместен. Если вас беспокоит скорость, сравните свой сценарий и проверьте, где находятся узкие места, прежде чем беспокоиться о конкретном if утверждении.

1 голос
/ 21 декабря 2011

Не огромная разница в скорости, но первая, безусловно, более читабельна и имеет больше смысла ...

http://jsperf.com/string-vs-regex-test/2

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