'helloworld'.slice(0,5); // 'hello'; 'helloworld'.slice(5); // 'world'; 默认到结尾 'helloworld'.slice(-5); // 'world'; 10-5 = 5; // 第一个参数大于第二个参数是返回空字符. 'helloworld'.slice(5,1); // '' 'helloworld'.slice(-1,-5); // ''
substring() 和 slice() 都是可以从原字符串里面切出一部分, 只是substring()有点小特点.
1. 第一个参数大于第二个参数时, 会自动将两者调换位置;
2. 负数会自动转换为0;
以上两条会得到下面的效果:
'JavaScript'.substring(4, -3); // 'Java'
原理是: (4, 0) => (0, 4) => 'Java'
注意, 如果两个参数相同, 则为返回空字符串;
'javascript'.slice(2,2); // '' 'javascript'.subsring(2,2); // ''
String.prototype.substr() 介于 String.prototype.slice() 和 String.prototype.substring() 之间, 它会将 负数下标 转换为0, 第一个参数比第二个大时不会调换位置.