内置对象的定义:有ECMAScript实现提供的、不依赖与宿主环境的对象,在ECMAScript运行之前就已经创建好的对象就叫做内置对象。

就是说,是不需要我们开发人员先是的实例化对象就能够调用和运行的对象。 在ECM-262中只是定义了两个内置对象 Global和Math对象

一、Global对象(单体对象)

Global(全局)对象是在ECMAScript中是一个特别的对象,因为这个对象是不存在的。在ECMAScript 中任何不属于其他对象的方法和属性都是这个对象的方法和属性。

1、Global对象的 编码/解码方法

 window.onload=function(){
var url="http://www.baidu.com";
// 编码encode
//该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
var encode=encodeURI(url);//http://www.baidu.com
//完全编码,它会将发现的URI中所有的非标准字符进行编码
var encodeComponent=encodeURIComponent(url);//http%3A%2F%2Fwww.baidu.com //解码
//decodeURI(): 用来解码由编码方法 encodeURI()编码的URI
var decode=decodeURI(encode);//http://www.baidu.com
//decodeURIComponent(): 用来解码由编码方法 encodeURIComponent() 编码的URI
var decodeComponent=decodeURIComponent(encodeComponent);//http://www.baidu.com }

2.Global对象的eval()方法

/*
  eval()方法是用来担当一个字符串解析器的作用,只是接收一个参数,
而这个参数中就是要执行的JS代码,多余的参数会忽略的,此方法可能有返回值也可能没,
要根据参数中的JS代码而定,在AJAX中传递参数的时候很有用
注意:
eval() 方法虽然很好用,功能很强大,但是也是很危险的方法,因此在使用的时候应该谨慎使用。
特别是在用户输入数据的时候,很可能会导致程序的安全性问题,比如代码注入等等
*/
window.onload=function(){
//作为js解析器
var box="alert('作为js解析器')";
eval(box); //弹出 作为js解析器
alert(eval(box));//先弹出 作为js解析器 然后弹出 undefined 说明此时eval方法没有返回值 //在eval方法解析某种字面量变量的时候,返回的就是这个字面量的值
var box="[3,4,5,6]";
console.info(box); //此时输出的box 就是字符串 [3,4,5,6]
var evalBox=eval(box);//此时输出的evalBox 就是数组类型 [3, 4, 5, 6]
}

3.其他方法

window.onload=function(){
// parseFloat(numString) 返回由字符串转换得到的浮点数。
var a=parseFloat("abc"); // 返回 NaN。
var b=parseFloat("1.2abc"); // 返回 1.2。
/*
parseInt(numString, [radix]) 返回由字符串转换得到的整数。
radix
可选项。在 2 和 36 之间的表示numString所保存数字的进制的值。
如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,
前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。
*/
var c=parseInt("abc"); // 返回 NaN。
var d=parseInt("12abc"); // 返回 12。
/*
isNaN 检测一个变量是不是一个数 不是一个数返回true,是一个数返回false
使用这个函数的典型情况是检查parseInt和parseFloat方法的返回值。
*/
var flag=isNaN(23123);
/*
isFinite(number) 返回一个 Boolean 值,指明所提供的数字是否是有限的。
如果number不是NaN、负无穷或正无穷,那么isFinite方法将返回true。 如果是这三种情况,函数返回false。
*/
var flag2=isFinite(23213.3241);
}

二、Math 对象(单体对象)

三、Date对象