4.encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的區(qū)別

一、前言

統(tǒng)一資源標(biāo)識(shí)符,或叫做 URI,是用來(lái)標(biāo)識(shí)互聯(lián)網(wǎng)上的資源(例如,網(wǎng)頁(yè)或文件)和怎樣訪問(wèn)這些資源的傳輸協(xié)議(例如,HTTP 或 FTP)的字符串。除了encodeURI、encodeURIComponent、decodeURI、decodeURIComponent四個(gè)用來(lái)編碼和解碼 URI 的函數(shù)之外 ECMAScript 語(yǔ)言自身不提供任何使用 URL 的支持。

二、URI組成形式

一個(gè) URI 是由組件分隔符分割的組件序列組成。其一般形式是:

Scheme : First / Second ; Third ? Fourth

其中斜體的名字代表組件;“:”, “/”, “;”,“?”是當(dāng)作分隔符的保留字符

三、區(qū)別

encodeURIdecodeURI 函數(shù)操作的是完整的 URI;這倆函數(shù)假定 URI 中的任何保留字符都有特殊意義,所有不會(huì)編碼它們。

encodeURIComponentencodeURIComponent函數(shù)操作的是組成 URI 的個(gè)別組件;這倆函數(shù)假定任何保留字符都代表普通文本,所以必須編碼它們,所以它們(保留字符)出現(xiàn)在一個(gè)完整 URI 的組件里面時(shí)不會(huì)被解釋成保留字符了。

var uri = "http://xx/#/y?a=1%&b=我";
var string1 = encodeURI(uri);
var string2 = encodeURIComponent(uri);
console.log(string1);//http://xx/#/y?a=1%25&b=%E6%88%91
console.log(string2);//http%3A%2F%2Fxx%2F%23%2Fy%3Fa%3D1%25%26b%3D%E6%88%91

這也正是可以對(duì)整個(gè)URI使用encodeURI(),而只能對(duì)附加在現(xiàn)有URI后面的字符串使用encodeURIComponent()的原因所在。一般來(lái)說(shuō),我們使用encodeURIComponent()方法的時(shí)候要比使用encodeURI()更多,因?yàn)樵趯?shí)踐中更常見(jiàn)的是對(duì)查詢字符串參數(shù)而不是對(duì)基礎(chǔ)URL進(jìn)行編碼.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,674評(píng)論 0 4
  • ??引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例。 ??在 ECMAscript 中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)...
    霜天曉閱讀 1,218評(píng)論 0 1
  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,536評(píng)論 0 13
  • 考前刷完了1988,留給我最深刻記憶的就是崔澤。 誰(shuí)的生活里有這樣的天使呢,笑起來(lái)整個(gè)世界都亮了。 都說(shuō)他高智商低...
    意薄云水_閱讀 270評(píng)論 0 0
  • 她瞬間愣住。教室里,老師已經(jīng)開(kāi)始講課,他卻站在門口,不懷好意地看著她。面對(duì)他油膩的眼神,她感到一陣反胃:“記我遲到...
    作家明至閱讀 913評(píng)論 0 1

友情鏈接更多精彩內(nèi)容