参考:https://www.jianshu.com/p/075f5567c9a1
这两个函数功能上面比较接近,但是有一些区别。
- encodeURI:不会进行编码的字符有82个 :!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
- encodeURIComponent:不会进行编码的字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
-
从使用的角度来说:
-
encodeURI主要用于直接赋值给地址栏时候:
location.href=encodeURI("http://huangjacky.com/");
-
而encodeURIComponent主要用于url的query参数:
location.href="http://huangjacky.com/test.php?a="+encodeURIComponent("我就是我");
-
-
关于escape说两点:
-
ECMAScript 3中已经不提倡使用这个函数了,所以我们还是少用吧。
-
escape不会编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
-