JavaScript Global 对象

  1. URI 编码方法

Global 对象的 encodeURI() 和 encodeURIComponent() 方法可以对 URI 进行编码,它们用特殊的 UTF-8 编码替换所有无效的字符,从而让浏览器能够接受和理解。

其中 encodeURI() 主要用于整个 URI(例如,http://www.test.com/bugs fixed.html),而 encodeURIComponent() 主要用于对 URI 中的某一段(例如,bugs fixed.html)进行编码。

它们的主要区别是,encodeURI() 不会对本身属于 URI 的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而 encodeURIComponent() 则会对它发现的任何非标准字符进行编码。

下面是一个实例:

        var uri = "http://www.test.com/bugs fixed.html"
        console.log("encodeURI(uri): ", encodeURI(uri));
        console.log("encodeURIComponent(uri): ", encodeURIComponent(uri));

输出结果:

JavaScript Global 对象_第1张图片
输出结果

从上面的例子中可以看出 encodeURI() 主要用于整个 URI,而 encodeURIComponent() 主要用于对 URI 中的某一段进行编码的原因。

与 encodeURI() 和 encodeURIComponent() 对应的解码方法是 decodeURI() 和 decodeURIComponent()。其中,decodeURI() 只能对使用 encodeURI() 替换的字符进行解码。例如,它可以将 %20 替换成一个空格,但不会对 %23 作任何处理,因为 %23 表示井字号(#),而井字号不是使用 encodeURI() 替换的。同样地,decodeURIComponent() 能够解码使用 encodeURIComponent() 编码的所有字符,即它可以解码任何特殊字符的编码。下面是一个实例:

        var uri = "http://www.test.com/bugs fixed.html#start"
        var encURI = encodeURIComponent(uri);
        console.log("encodeURI(uri): ", decodeURI(encURI));
        console.log("encodeURIComponent(uri): ", decodeURIComponent(encURI));

输出结果:

JavaScript Global 对象_第2张图片
输出结果
  1. eval() 方法

eval() 方法就像是一个完整的 JavaScript 解析器。

下面是一个使用实例:

        eval("function sayColor() { console.log(\"sayColor: \", color); }");
        sayColor();

输出结果:

JavaScript Global 对象_第3张图片
输出结果

在 QML 中不建议使用 eval() 方法。

你可能感兴趣的:(JavaScript Global 对象)