After running benchmark for js substring vs substr I found the following results:
Substring:
(() => { let start = +Date.now(); for (let i = 0; i < 1000000000; i++) { let val = "0.fr8gdqxstse".substring(2) } console.log(+Date.now() - start); })();
This gave me run time of 21447ms
With end index:
(() => { let start = +Date.now(); for (let i = 0; i < 1000000000; i++) { let val = "0.fr8gdqxstse".substring(2, 10) } console.log(+Date.now() - start); })();
This ran for 21271ms
Substr:
(() => { let start = +Date.now(); for (let i = 0; i < 1000000000; i++) { let val = "0.fr8gdqxstse".substr(2) } console.log(+Date.now() - start); })();
This gave me run time of 25522ms
With size:
(() => { let start = +Date.now(); for (let i = 0; i < 1000000000; i++) { let val = "0.fr8gdqxstse".substr(2, 8) } console.log(+Date.now() - start); })();
Run time: 22510ms
After running several iterations, this was average result.
Conclusion:
substring runs faster.
I may have missed something. Please comment if you like.