Javascript之内置对象

    ECMA-262定义了两个内置对象:Global和Math。

1、Global对象

    Global(全局)对象可以说是一个最特殊的对象,因为无论怎么看这个对象是不存在的,只要不是属于其他对象的属性和方法,都是Global对象的属性和方法。事实上,没有全局变量和全局函数;所有在全局作用域中定义的属性和函数,都是Global对象的属性和方法。

    URI编码方法

    Global对象的encodeURI()和encodeURIComponet()方法可以对URI进行编码。其中encodeURI()是对整个URI有效,而encodeURIComponet()是用于对URI某段进行编码。它们主要区别在于,encodeURI()不会对本身属于URI的特殊字符进行编码,如冒号,斜杠等,而encodeURIComponet()则会对它发现的任何非标准字符进行编码。

    一般来说,我们使用encodeURIComponet()比encodeURI()多,因为在实际开发中,更常见的是对查询字符串参数进行编码,而不是基础URI进行编码。

    decodeURI()和decodeURIComponet()方法则是相对应的解码操作。

    evel()方法

    eval()方法就像一个完整的ECMAScript解析器,它只接受一个参数,即要执行的ECMAScript字符串。

eval("alert('Hi')");
//相当于
alert("Hi");

    当解析器发现代码中调用evel()方法时,它会将传入的参数当作实际的ECMAScript语句来解析,然后把结果插入到原位置。通过evel()执行的代码被认为是包含盖茨调用的执行环境的一部分,因此被执行的代码具有与该执行环境一样的作用域链。这就意味着通过evel()执行的代码可以引用包含环境中定义的变量,如下:

var msg = "hello world";
evel("alert(msg)");

    可见,变量msg在evel()调用的环境之外定义的,但其中的alert()仍能显示"hello world"。同样的,我们可以在evel()中定义一个函数,然后再进行调用:

evel("function sayHi(){ alert('hi')}");
sayHi();

    严格模式下,外部访问不到evel()中创建的任何变量和函数。

2、Math对象

    ECMAScript还为保存数学公式和信息提供了一个公共位置,即Math对象。与我们在JavaScript直接编写的计算功能相比,Math对象提供的计算功能执行起来要快的多。

原文地址:https://www.cnblogs.com/zxj159/p/3085440.html