前言:在看《Javascript高级程序设计》的时候,看到字符串这里,发现字符串的内容真的别有洞天,单看字符串提取就晕了好久~果然还是基础不扎实!
共同点
1. 从字符串中提取字符的方法
2. 不修改原字符串的值
参数的区别:
1. slice,substring:第一个参数为提取字符开始的地方,第二个为结束的位置(该位置的值不取)
2. substr:第一个参数是提取开始的位置,第二个字符是所 要提取的长度
let str = 'happy day!'
console.log(str.slice(2,5))
console.log(str.substring(2,5))
console.log(str.substr(2,5))
对负值参数的处理
1. substring : 将所有的负值转化为0,会将小数调换到前面
2. slice:将所有的负值转化为 该字符串长度+负值(理解为倒着数) ,不会将小数换在前面
3. substr : 将第一个负值转化为 该字符串长度+负值 ,第二个负值转化为0,不会将小数换在前面
let str = 'enjoying'
console.log(str.substring(2, -5))
console.log(str.slice(2,-5))
console.log(str.substr(2,-5))
总结:
相对起来,slice方法是最不花里胡哨的,可以正取也可以倒取,不容易踩坑。而substring完全就不能倒着取; 需要注意的是:substr的第二个参数是长度不是位置,所以负值就相当于无效的0;因此substr有起始地址的时候也是不可倒取的;
来点练习:
如果你心有余力,那再看看些例子吧!
let str = 'test time!!'
console.log(str.substr(2, -2));
console.log(str.substr(-2));
console,log(str.slice(-2));
console.log(str.slice(2,-8));
console.log(str.substring(-2));
console.log(str.substring(2, -2));
|