PSA: use only #2.
If you *really* need it, put a warning comment for #1.
Avoid #3 (unless you're generating code), and for #4 use Number rather than an easy-to-miss unary operator.
There's a misunderstanding: I mainly use `slice` too. I only use `substr` if I have the length of the substring I need. That's its added value.
What I stopped using altogether is `substring`.