一、作用:用来编码和解码URI的
统一资源标识符,或叫做 URI,是用来标识互联网上的资源(例如,网页或文件)和怎样访问这些资源的传输协议(例如,HTTP 或 FTP)的字符串。除了encodeURI、encodeURIComponent、decodeURI、decodeURIComponent四个用来编码和解码 URI 的函数之外 ECMAScript 语言自身不提供任何使用 URL 的支持。
二、URI的组成
URI是URN和URL的统称,这里我们主要了解一下URL;
URL中可能由 ":"、 "/"、 ";"、"?"、"{"、"}"、"&"、英文字母、数组、中文字符等组成;而除了英文字母和数字以外,其他的字母都有可能被浏览器自动转码。
":"、 "/"、 ";"、"?" 是当作分隔符的保留字符。不能被 encodeURI 和 decodeURI 解析
三、四个方法的区别
encodeURI 和 decodeURI 函数操作的是完整的 URI;这俩函数假定 URI 中的任何保留字符都有特殊意义,所有不会编码它们。
encodeURIComponent 和 decodeURIComponent 函数操作的是组成 URI 的个别组件;这俩函数假定任何保留字符都代表普通文本,所以必须编码它们,所以它们(保留字符)出现在一个完整 URI 的组件里面时不会被解释成保留字符了。
详细文档请查看 ECMAScript标准。
实例:
<script type="text/javascript">
//encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别
const allUrl = 'index/{a:1,b:2}';
// const allUrl = 'index/2/参数参数参数1';
const transcode = encodeURI(allUrl);
const decode = decodeURI(transcode);
console.log('===transcode', transcode); //index/%7Ba:1,b:2%7D
console.log('===decode', decode);
console.log('=========================');
const transcode_02 = encodeURIComponent(allUrl); //index%2F%7Ba%3A1%2Cb%3A2%7D
const decode_02 = decodeURIComponent(transcode);
console.log('===transcode_02', transcode_02);
console.log('===decode_02', decode_02);
</script>
参考博客:https://www.cnblogs.com/shuiyi/p/5277233.html
文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出!
对博客文章的参考,若原文章博主介意,请联系删除!请原谅