JavaScript ​decodeURIComponent()和encodeURIComponent() 函数小小解释

791 阅读1分钟

1、引文

事情是这样的,群里面的铁汁问了一个问题,为什么if判断语句里面undefined会为真?由于最开始铁汁没有贴代码,那就只能大家开始猜猜乐啊,本人的猜测可能是由于作用域的原因导致undefined被更改,比如let undefined = true,直到铁汁贴出来了这样的图

截屏2023-07-18 16.59.58.png 这时候,虽然不明白铁汁为什么要这样进行判断,然后其他铁汁就在说为什么不用!result进行判断,可是取反判断还是走假的代码,由此引申出接下来的话题。

2、作用

  • encodeURIComponent:将 URI 字符串中的特殊字符(如 /.? 和 = 等)进行编码,以便在 URL 中安全地传输(除了 ASCII 字符集中的字母、数字、标点符号和某些特殊字符(如 -_. 和 ~)以外的所有字符,包括汉字、日语假名、俄文字符等,以及所有 UTF-8 编码的字符)
  • decodeURIComponent:将已编码的 URI 字符串解码为原始字符串。

3、使用

截屏2023-07-18 16.24.26.png

截屏2023-07-18 16.25.18.png

4、返回值

  • encodeURIComponent和decodeURIComponent返回值都是字符串。

  • 如果值是undefined,需注意返回的是字符串的"undefined"。

  • 截屏2023-07-18 16.30.31.png

  • 当这两个方向当该方法使用不当时,将会抛出一个URIError(“格式错误的 URI 序列”)异常。

5、参考

本人写的不好,望各位大佬多多包涵。