【javascript】String对象的slice()、substring()、substr()的区别; String.slice()和Array.slice()的区别;Array.splice()

encodeURI(string):把字符串string作为URI编码;URI–统一资源标识符; URL–统一资源定位符;
decodeURI(URIstring):可以encodeURI()函数编码过的URI进行解码;返回URIstring的副本,其中十六进制转义的序列 将被他们表示的字符串替换;

		<script type="text/javascript">
			var  str="Hello world"
			
//			1、       str.substr(起始下标start,子串长度length); 其实下标为负数(-2),表示从后算下标(倒数第二个数);  length可不写,不写代表到字符串结束;
			console.log(str.substr(3,5));     //从下标3处开始截取,截取5位数,       输出lo wo;
			console.log(str.substr(-3,1));    //从倒数第3位开始截取,截取1位数,      输出r;
			console.log(str.substr(-5));  //没有写length代表截取到最后,从倒数第5位开始,去到最后,       输出world;
			
//			2、       substring(start,end)用于截取“介于两个指定下标之间”的字符
			console.log(str.substring(2,7));    //截取下标2-下标6“之间”的字符,即下标2-5的字符;  输出llo w
			console.log(str.substring(3));       //截取下标3至最后的字符; 输出lo world;
			
			//3、   slice()和substring(start,end)类似,只不过slice的参数可以为负数;
			console.log(str.slice(3,7));        //截取下标3-下标6的字符;    输出lo w;
			console.log(str.slice(-5,-2));   //截取倒数第5位-倒数第2位"之间"的字符,    输出wor;
			console.log(str.slice(-3));     //截取倒数第3位到最后的字符串     输出rld;

总结:String对象的slice()、substring().substr()都可以返回字符串的指定部分,slice()比substring()灵活些,可以使用负数为参数; substr()和另两个不同,substr()是用字符初始位置和长度来指定子串;

			/*------------------------------------------------------------*/
			//关于String.slice(start,end)和Array.slice(start,end)
//			String.slice(start,end); 返回起止下标之间的字符;
//          Array.slice(start,end);从已有数组中返回指定的元素;也是起止下标之间的元素,也可以使用负数为参数,”该方法不会修改数组,而是返回一个子数“;组;
			
			var arr=new Array(5);
			arr[0]="张三";
			arr[1]="李四";
			arr[2]="王五";
			arr[3]="赵六";
			arr[4]="马奇";
			
			console.log(arr)
			console.log(arr.slice(2))    //返回数组中下标为2的元素到最后,  输出 数组:王五,赵六,马奇
			console.log(arr.slice(2,4));      //返回下标2-4之间的元素,   输出数组:王五,赵六;
			console.log(arr.slice(-2));     //返回倒数第2个元素到最后的元素   输出 数组:赵六  马奇
			console.log(arr);       //数组不会被修改;
			
			//Array的slice()并不会改变数组,而是返回一个子数组;若想删除数组中的一段元素,应使用Array,splice()方法;
			//Array.splice()方法用于从数组中添加、删除元素,并返回修改后的数组;
			//Array.splice(添加删除的位置,删除的元素数量可为0,添加的元素1,添加的元素2,...添加的元素3);   
			//返回被修改后的新数组;
			
			//数组的增、删、改
			var brr=new Array(6);
			brr[0]="zhangsan";
			brr[1]="lisi";
			brr[2]="wangwu";
			brr[3]="zhaoliu";
			brr[4]="maqi";
			brr[5]="chenfei";
			
			//添加
			console.log(brr);    //输出 ["zhangsan", "lisi", "wangwu", "zhaoliu", "maqi", "chenfei"]
			
			brr.splice(2,0,"yanghua");   //修改的是原数组,要打印原数组,和slice()不同;
			console.log(brr);    //从下标2处,删除0 个元素,添加元素"yanghua"; 即行第3个元素后面添加一个元素, 输出 ["zhangsan", "lisi", "yanghua", "wangwu", "zhaoliu", "maqi", "chenfei"]
			//可以看出,第一项是"添加删除的位置";

			//替换
			console.log(brr);  //原数组: ["zhangsan", "lisi", "yanghua", "wangwu", "zhaoliu", "maqi", "chenfei"]
			brr.splice(2,1,"xiaomiao");  //在下标2处删除1个元素,添加一个元素"xiaomiao",相当于修改了一个元素;
			console.log(brr);  //返回修改后数组:["zhangsan", "lisi", "xiaomiao", "wangwu", "zhaoliu", "maqi", "chenfei"]
			
			//删除
			
			brr.splice(2,3);    //在下标2处,删除3个元素;
			console.log(brr);   //返回删除后的数组:["zhangsan", "lisi", "maqi", "chenfei"]
			
			brr.splice(2,2,"huahua");   //下标2处删除2个,添加一个数
			console.log(brr);   ["zhangsan", "lisi", "huahua"]
		</script>
		
发布了57 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Eva3288/article/details/52814505