JavaScript全局对象

Global对象

Global对象(全局),可以算是JavaScript中最特别的一个对象了。因为    不管你是从什么角度来看,这个对象都是不存在的。事实上,没有全局函数,或者全局变量;所有在全局定义的属性和函数,都是Global对象的属性。

1.  URI编码方法

encodeURI ()和encodeURIComponent()都可以对URI进行编码,唯一的不同是,encodeURI主要是对整个URI进行编码,而encodeURIComponent只是对URI中的某一段进行编码。

EncodeURI不会对URI中的特殊字符进行编码,如冒号,下划线,#,问号;而encodeURIComponent则会对任何非标准字符进行编码。

与它们相反的是decodeURI()和decodeURIComponent()方法。

        //Global对象
        //URI编码方法(encodeURI,encodeURIComponent)
        var http = "http://www.baidu.com?w=湖北 武汉";

        console.log("encodeURI:" + encodeURI(http));//http://www.baidu.com?w=%E6%B9%96%E5%8C%97%20%E6%AD%A6%E6%B1%89
        console.log("encodeURIComponent:" + encodeURIComponent(http));//http%3A%2F%2Fwww.baidu.com%3Fw%3D%E6%B9%96%E5%8C%97%20%E6%AD%A6%E6%B1%89

2.   eval()方法

这个方法接受一个参数,它会将传入的参数当做实际的ECMAScript语句来解析,然后把执行结果插入到原位置。

        //eval会解析参数,并插入到原位置。
        eval("console.log(sum)");//undefined
        var sum = 10;
        eval("console.log(sum)");//10

3.   Global属性

这个方法接受一个参数,它会将传入的参数当做实际的ECMAScript语句来解析,然后把执行结果插入到原位置。

4.   window对象

ECMAscript虽然没有指定如何访问Global对象,但Web浏览器都是将这个全局对象作为window对象的一部分加以实现的。因此,全局作用域中声明的所有变量和函数,就都成为了window对象的属性。

        
        //SayHello是一个全局函数,属于window的一个属性
        function  SayHello()
        {
            console.log("Hello !!!");
        }

        function InvokeSayHello() {
            window.SayHello();
        }

JavaScript变量声明

使用var声明的变量会自动被添加到最接近的环境中。在函数内部,最接近的环境就是函数的局部环境。在with语句中,最接近的环境就是函数环境。如果初始化变量时没有使用var声明,该变量会自动添加到全局环境。


Function类型

在JavaScript中,有意思的一点是,函数是一个对象,函数名是一个指针。

以上内容来自《JavaScript高级程序设计(第3版)》

你可能感兴趣的:(前端技术)