理解javascript中的slice

理解javascript中的slice,javascript,string,Javascript,String,考虑以下字符串: const str = "I am a good boy" At,指数7=g At,index 10=d 但当我使用时,字符串的拼接方法接受两个参数,即开始索引和结束索引,所以当我使用 我希望它返回good,但它只返回goo为什么会这样,即使在索引10中,d也存在 根据W3学校 slice()提取字符串的一部分,并以 新的字符串 该方法采用两个参数:起始索引(位置)和 结束索引(位置) 从中,endIndex(第二个)参数是结束源字符串提取之前的索引 将结束索引放在所需内容之

考虑以下字符串:

const str = "I am a good boy"
At,指数7=g At,index 10=d 但当我使用时,字符串的拼接方法接受两个参数,即开始索引和结束索引,所以当我使用

我希望它返回
good
,但它只返回
goo
为什么会这样,即使在索引10中,d也存在

根据W3学校

slice()提取字符串的一部分,并以 新的字符串

该方法采用两个参数:起始索引(位置)和 结束索引(位置)

从中,
endIndex
(第二个)参数是结束源字符串提取之前的索引


将结束索引放在所需内容之后一个位置是很有用的,因为这样做会使数学计算变得更容易。如果您想要从位置
i
开始的三个字符,可以使用
source.slice(i,i+3)

想象一下数学中的范围是如何工作的,有包含边界的,也有不包含边界的,即范围可以是以下之一:

  • 封闭范围-(1,10),即范围2-9,不包括指数1和10

  • 开放范围-[1,10],即范围1-10,包括1和10

  • 半开-[1,10)或(1,10],即第一个范围从1开始,但在9结束,第二个范围从2开始,在10结束


因此,拼接函数采用[a,b]形式的半开范围,其中包括第一个,但在下边界处是闭合的,即它不包括下边界。

看起来是这样的。如果你认为它们是字母应该开始的地方,那么这就很有意义了


splice()
slice()
?它只上升到索引,但不包括索引。顺便说一句,我更喜欢W3Schools。谢谢,我明白了。这就是为什么数学总是很重要的原因。:)哈哈,这是所有解释的根源。
const result = str.slice(7, 10)
console.log(result)