首先这三个函数的出现而来的目的就是为了获取字符串的字符。
相同点就是都有有两个参数
slice(BeginSlice, EndSlice);
substring(indexStart, indexEnd);
substr(index, length);
让它们发生更本变化的就是传入的那两个参数。通过how to use them去对比发现的。
一开始自己肯定要先明白每一个概念的含义以及使用方法,如果看了就继续往下一个函数看,收获我想也不大。
看看相同点
//如果开始索引与结束索引一样会返回""
var str = 'Mozilla';
str.slice(1,1);//""
str.substring(1,1);//这两个函数返回的结果是 ""
//如果结束索引被忽略了,那么获取字符串将进行到字符串的结尾
str.slice(0);
str.substring(0);
//截取字符串不包括结束索引的值
str.slice(0,2);//'Mo' 没有取到'z'的值
str.substring(0,2);//'Mo'
substring的不同
//substring如果参数小于0或者是NaN,当作0来处理,可以试试看
str.substring(-1,2);//'Mo'
str.substring(NaN,2);//'Mo'
str.substring(0,2);//'Mo'
//如果indexStart > indexEnd,那么两者会交换位置
str.substring(10,2) == str.substring(2,10);//true
slice的不同
//如果beginSlice索引为负数,那么会被处理为str.length + beginSlice
str.slice(-2,-1);//等一下行代码
str.slice(str.length-2, str.length-1);
//如果begin > end,不管是正数还是负数都返回为""
str.slice(5,2);//""
str.slice(-2,-5);//""
substr
//第一Index为负数时,处理为str.length + Index
str.substr(-4,5);
str.length(str.length-4,5);
//第一个索引为NaN时当作零来处理
str.substr(NaN,5) == str.substr(0,5);
//当第二个参数为负数或者NaN或者零时,返回""
str.substr(2,0);//""
str.substr(2,NaN);//""
str.substr(2,-1);//""
真的好难写一篇技术文章呀,我的天呐没掌握全不敢写出来呀。真的一点逻辑也没有感觉