string.slice(start, stop);
string.substring(start, stop);
What they have in common:
-If start equals stop: returns an empty string
-If stop is omitted: extracts characters to the end of the string
-If either argument is greater than the string's length, the string's length
will be used instead.
Distinctions of substring():
-If start > stop, then substring will swap those 2 arguments.
-If either argument is negative or is NaN, it is treated as if it were 0.
Distinctions of slice():
-If start > stop, slice() will return the empty string. ("")
-If start is negative: sets char from the end of string.
-If stop is negative: sets stop to: string.length – Math.abs(stop)
(original value), except bounded at 0.