В разных реализациях обычно наблюдается широкий разброс производительности, поэтому необходимо тестирование. Но если производительность действительно важна, я бы поспорил, что .split()
медленнее.
"Может быть, даже не заключен в оператор if ..."
Но я бы сказал, что у вас не должно быть встроенного, как у вас. .indexOf()
вернет -1
, если совпадений не найдено, что приведет к тому, что .substr
выдаст вам последний символ строки.
var sel = 'tester';
sel.substr(sel.indexOf("#")); // "r"
Так что держите заявление if
...
var sel = 'tester',
idx = sel.indexOf("#"),
sub;
if( idx !== -1 ) {
sub = sel.substr("#");
}