为什么我的子串在写这样的时候会起作用?

bet*_*eta 1 javascript

关于我的代码行为的一个简单问题:我只想删除JavaScript中字符串的第一个和最后一个字符.所以这就是我的代码看起来的样子(它实际上按照它的工作方式工作):

var element = "<LightName>";
element = element.substring(1, element.length - 1);
Run Code Online (Sandbox Code Playgroud)

但是为什么在使用-1时它也删除了最后一个字符?不应该在element.length时的字符串长度理论上仍然是11(因为子字符串尚未执行)所以我告诉它从索引1开始的子字符串,长度为10.

可能是一个相当令人困惑的问题,但也许有人可以稍微澄清一下......

Phy*_*sis 7

从此链接,子字符串方法签名是:

string.substring(from, to)
Run Code Online (Sandbox Code Playgroud)

这意味着第二个参数不是子字符串的长度,而是结束位置.