Недавно я столкнулся с этим фрагментом кода JavaScript:
if (",>=,<=,<>,".indexOf("," + sCompOp + ",") != -1)
Я был заинтригован, потому что для написания этого теста я бы сделал:
if (/(>=|<=|<>)/.test(sCompOp))
Это просто стилистическая разница, или автор другого кода знает что-то об оптимизации, чего я не знаю? Или, может быть, есть другая веская причина сделать это или не использовать регулярные выражения...?
Мне кажется, что использование String.indexOf()
для этого немного труднее читать (но тогда мне вполне комфортно с регулярными выражениями), но есть случаи, когда это может быть "лучше", чем писать эквивалент регулярное выражение?
"Лучше", что может быть быстрее или эффективнее (хотя очевидно, что это зависит от механизма JavaScript браузера) или по какой-то другой причине, о которой я не знаю. Может ли кто-нибудь просветить меня?