slice()
works like substring()
with a few different behaviors.
Syntax: string.slice(start, stop);
Syntax: 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, exactly like substr()
in Firefox. This behavior is observed in both Firefox and IE.
- If
stop
is negative: sets stop to: string.length – Math.abs(stop)
(original value), except bounded at 0 (thus, Math.max(0, string.length + stop)
) as covered in the ECMA specification.
Source: Rudimentary Art of Programming & Development: Javascript: substr() v.s. substring()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…