为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_唔叫咩_0 2018-05-02 22:11:47
var str="阿飞老师";        alert(str.slice(-2,5));//老  
查看完整描述

3 回答

已采纳
?
码农2号

TA贡献151条经验 获得超48个赞

slice()切割数组和字符串时候,有两个参数。

第一个参数是从哪里切割开始,如果是正数,则从前往后数,如果是负数,则从后往前数。这个参数必须写。

第二个参数是切割到哪里,如果是正数,则从前往后数,如果是负数,则从后往前数。这个参数是可选的,就是说可写可不写,不写的话默认切割到最大值。

有些特例,类似你这个5,明显大于字符串字数,所以默认是切割到最后。所以最后输出的是‘老师’,而不是你写的‘老’。

如果你想切割出来一个‘老’,alert(str.slice(-2,3));

然后还有个特例,就是第二个参数指向在第一个参数的前面,这个时候默认切割的是空的。

我用大白话说的,我想你认真读一下,再试一下,应该就会了。

查看完整回答
反对 回复 2018-05-03
?
我吃西瓜很快

TA贡献39条经验 获得超13个赞

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'


查看完整回答
1 反对 回复 2018-05-03
?
qq_唔叫咩_0

TA贡献2条经验 获得超0个赞

理解就是从倒数开始到正数结束,不知道是否有误???

查看完整回答
反对 回复 2018-05-02
  • 3 回答
  • 0 关注
  • 1783 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信