请问slice()这个语法的详细规则是什么?网上说的不是很清晰

var str="阿飞老师";

        alert(str.slice(-2,5));//老  






qq_唔叫咩_0
浏览 1784回答 3
3回答

码农2号

slice()切割数组和字符串时候,有两个参数。第一个参数是从哪里切割开始,如果是正数,则从前往后数,如果是负数,则从后往前数。这个参数必须写。第二个参数是切割到哪里,如果是正数,则从前往后数,如果是负数,则从后往前数。这个参数是可选的,就是说可写可不写,不写的话默认切割到最大值。有些特例,类似你这个5,明显大于字符串字数,所以默认是切割到最后。所以最后输出的是‘老师’,而不是你写的‘老’。如果你想切割出来一个‘老’,alert(str.slice(-2,3));然后还有个特例,就是第二个参数指向在第一个参数的前面,这个时候默认切割的是空的。我用大白话说的,我想你认真读一下,再试一下,应该就会了。

我吃西瓜很快

str.slice(beginSlice[, endSlice])参数beginSlice从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做 sourceLength + beginSlice 看待,这里的sourceLength 是字符串的长度 (例如, 如果beginSlice 是 -3 则看作是: sourceLength - 3)endSlice可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice会一直提取到字符串末尾。如果该参数为负数,则被看作是 sourceLength + endSlice,这里的 sourceLength 就是字符串的长度(例如,如果 endSlice 是 -3,则是, sourceLength - 3)。描述slice() 从一个字符串中提取字符串并返回新字符串。在一个字符串中的改变不会影响另一个字符串。也就是说,slice 不修改原字符串,只会返回一个包含了原字符串中部分字符的新字符串。注意:slice() 提取的新字符串包括beginSlice但不包括 endSlice。例1:str.slice(1, 4) 提取新字符串从第二个字符到第四个 (字符索引值为 1, 2, 和 3)。例2:str.slice(2, -1) 提取第三个字符到倒数第二个字符。例子使用 slice() 创建一个新的字符串下面例子使用 slice() 来创建新字符串:var str1 = 'The morning is upon us.'; var str2 = str1.slice(4, -2); console.log(str2); // OUTPUT: morning is upon u给 slice() 传入负值索引下面的例子在 slice() 使用了负值索引:var str = 'The morning is upon us.'; str.slice(-3);     // returns 'us.' str.slice(-3, -1); // returns 'us' str.slice(0, -1);  // returns 'The morning is upon us'

qq_唔叫咩_0

理解就是从倒数开始到正数结束,不知道是否有误???
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript