Ez az útmutató bemutatja a decodeURIComponent() és a decodeURI() metódusok közötti különbséget.
Először nézze meg az alapokat decodeURIComponent() és a decodeURI mód
mielőtt rátérnénk a különbségeikre.
Mi a különbség a JavaScript „decodeURIComponent()” és „decodeURI()” metódusai között?
Ez a szakasz a „decodeURIComponent()” és a „decodeURI()” metódusok közötti jelentős különbségeket tartalmazza:
Feltételek | decodeURIComponent() | decodeURI() |
Használat | A „decodeURIComponent()” az URI „encodeURIComponent()” metódussal kódolt összetevőinek dekódolására szolgál. | A „decodeURI()” az „encodeURI” metódus segítségével kódolt teljes URI dekódolására szolgál. |
Paraméterek | A „decodeURIComponent()” az „encodeURIComponent()” metódussal „kódolt” URI-t igényel a dekódolás kötelező paramétereként. | A „decodeURI()”-nak az „encodeURI()” metóduson keresztül „kódolt” URI-ra van szüksége, mint alapvető paramétere a dekódolási művelet végrehajtásához. |
Korlátozás | A „decodeURIComponent()” csak az URI azon részét dekódolja, amely a „; / ? : @ & = + $ , #” elválasztók. Ezeket a karaktereket szövegként kezeli, nem speciális karakterként. | A „decodeURIComponent()” dekódolja a teljes URI-t. |
Most nézze meg a leírt különbségeket a gyakorlatban.
1. különbség: „decodeURIComponent()” és „decodeURI()” módszerek alkalmazása a „használat” alapján
Az első különbség szerint a „decodeURIComponent()” metódus az „encodeURIComponent()” metódussal, a „decodeURI()” pedig az „encodedURI()” metódussal dekódolja a kódolt karakterláncot.
JavaScript kód
< forgatókönyv >var uri = '%3B%2C%41%3F%3A%41%26%3D'
var encoded_URI = encodeURIComponent ( típus ) ;
konzol. log ( 'Output(decodeURIComponent()):' + decodeURIComponent ( típus ) )
var encoded_uri = encodeURI ( típus ) ;
konzol. log ( 'Dekódolt URI:' + decodeURI ( kódolt_uri ) ) ;
forgatókönyv >
A fenti kódrészletben:
- Az „uri” változó inicializál egy URI-t (Uniform Resource Identifier).
- Az „encoded_URI” változó a „ encodeURIComponent() ” metódussal kódolja az átadott „uri” paramétert.
- Ezután a „console.log()” metódus a „ decodeURIComponent() ” módszerrel dekódolja a nemrég kódolt karakterláncot, majd megjeleníti azt a konzolon.
- Ezt követően a „ decodeURI() ' metódus dekódolja a kódolt URI-t a ' encodeURI() ” metódus az „encoded_uri” változóban van megadva.
Kimenet
Látható, hogy a konzol megjeleníti a dekódolt URI-kat a „decodeURIComponent()” és a „decodeURI()” metódusokkal.
2. különbség: „decodeURIComponent()” és „decodeURI()” módszerek alkalmazása „paraméterek” alapján
A „Difference 1”-ben jól látható, hogy a „decodeURIComponent()” az „encodeURIComponent()” metóduson keresztül fogadja el a kódolt URI-t, a „decodeURI()” pedig az „encodeURI()” metóduson keresztül működik a kódolt URI-n. egy paraméter.
3. különbség: „decodeURIComponent()” és „decodeURI()” módszerek alkalmazása „Dekódolt karakterek” alapján
A harmadik különbség a „decodeURIComponent()” és a „decodeURI()” metódusok között az adott URI dekódolásával elemezhető. Lássuk a gyakorlatban.
JavaScript kód
< forgatókönyv >var uri = '@%20&%7F=%3A%41%26%3D'
konzol. log ( 'Kimenet(decodeURIComponent()): ' + decodeURIComponent ( típus ) )
konzol. log ( 'Kimenet(decodeURI()):' + decodeURI ( típus ) )
forgatókönyv >
Az adott script részben:
- Az első ' console.log() ' metódus megjeleníti a dekódolt URI-t a ' decodeURIComponent() ” módszerrel.
- A második „console.log()” metódus megmutatja a dekódolt URI-t a „ decodeURI() ” módszerrel.
Kimenet
A konzol egyértelműen mutatja, hogy a „decodeURIComponent()” metódus csak a „@ & =” karakterek között található URI-összetevőt dekódolja, a teljes URI-t nem.
Következtetés
JavaScript ' decodeURIComponent() ' és a ' decodeURI() ” módszerek különböznek egymástól attól függően, hogy „ használat ', ' paramétereket ', és a ' korlátozás ” tényezők. A fő/jelentős különbség egymás között az, hogy a „decodeURIComponent()” dekódolja az URI komponenst, míg a „decodeURI()” metódus a teljes URI-t. Ez az útmutató gyakorlatilag elmagyarázta a decodeURIComponent() és a decodeURI() metódusok közötti fő különbségeket.