美文网首页前端基础类学习
encodeURI、encodeURIComponent的区别

encodeURI、encodeURIComponent的区别

作者: 饥人谷_米弥轮 | 来源:发表于2017-06-05 18:04 被阅读723次
    • 这两个函数功能上面比较接近,但是有一些区别。

      • encodeURI:不会进行编码的字符有82个 :!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
      • encodeURIComponent:不会进行编码的字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
    • 从上面的说明中我们可以看出来encodeURIComponent编码更很一些,被编码后的字符都变成%xx这样的16进制形式。

      image
    • 从使用的角度来说:

    • 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

    相关文章

      网友评论

        本文标题:encodeURI、encodeURIComponent的区别

        本文链接:https://www.haomeiwen.com/subject/ogqwfxtx.html