Slice,substring,substr的仨事

首先这三个函数的出现而来的目的就是为了获取字符串的字符。
相同点就是都有有两个参数

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);//""

真的好难写一篇技术文章呀,我的天呐没掌握全不敢写出来呀。真的一点逻辑也没有感觉

你可能感兴趣的:(Slice,substring,substr的仨事)