JavaScript Global 对象

作者: 赵者也 | 来源:发表于2017-12-08 17:07 被阅读12次
    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));
    

    输出结果:

    输出结果

    从上面的例子中可以看出 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));
    

    输出结果:

    输出结果
    1. eval() 方法

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

    下面是一个使用实例:

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

    输出结果:

    输出结果

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

    相关文章

      网友评论

        本文标题:JavaScript Global 对象

        本文链接:https://www.haomeiwen.com/subject/qhgeixtx.html