说一下 escape、encodeURI、encodeURIComponent 有什么区别?具体的使用场景?
escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。
后两者都是编码URL,唯一区别就是编码的字符范围, encodeURIComponent比encodeURI编码的范围更大。
encodeURI方法不会对下列字符编码 ASCII字母 数字 ~!@#$&*()=:/,;?+’
encodeURIComponent方法不会对下列字符编码 ASCII字母 数字 ~!*()’
应用场景 | 例子 | |
---|---|---|
escape | 编码字符串 | escape(‘你好’); ‘%u4F60%u597D’ |
encodeURI | 编码整个URL | encodeURI(‘https://www.baidu.com/s?wd=你好’); ‘https://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD’ |
encodeURIComponent | 编码URL中的参数 | ‘https://www.baidu.com/s?wd=’+encodeURIComponent(‘你好’); ‘https://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD’ |