对象分类:
一般来说,可以创建并使用的对象有三种:本地对象, 内置对象,宿主对象,自定义对象
首先解释下什么是宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序。如:web浏览器,一些桌面应用系统等。即由web浏览器或是这些桌面应用系统早就的环境即宿主环境。
本地对象:
ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”;
本地对象有哪些:
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
即:本地对象就是 ECMA-262 定义的类(引用类型),是可以被new实例化的
内置对象:
ECMA-262 把内置对象(built-in object)定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。
内置对象有哪些:
JS中内置了17个对象,常用的是Array对象、Date对象、正则表达式对象、string对象、Global对象 ,即所有的本地对象加上Global和Math对象;而ECMA-262 只定义了两个内置对象,即 Global 和 Math
即:每个内置对象都是本地对象,内置对象是不可以被实例化的
Global对象及方法:
Global对象是一个固有对象,目的是把所有的全局方法集中在一个对象中。
Global没有语法,直接调用其方法。
escape(): 对 String 对象编码以便它们能在所有计算机上可读.
escape(charString)
必选项 charstring 参数是要编码的任意 String 对象或文字。
isNaN():判断一个值是否是NaN。
parseInt():返回由字符串得到的整数
parseFloat(): 解析一个字符串并返回浮点值;
Number(): 把对象的值转换为数值;
String(): 把对象的值转换为字符串;
Boolean(): 把对象的值转换为布尔值;
Math对象的基本方法:
Math.ceil():向上取整。
Math.floor():向下取整。
Math.round():四舍五入。
Math.random():取随机数。
Math.max(x,y): 返回x与y中较大的值。
Math.min(x,y): 返回x与y中较小的值。
宿主对象:
宿主”就是我们网页的运行环境,即“操作系统”和“浏览器”。所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。所有的BOM和DOM对象都是宿主对象。因为其对于不同的“宿主”环境所展示的内容不同。其实说白了就是,ECMAScript官方未定义的对象都属于宿主对象,因为其未定义的对象大多数是自己通过ECMAScript程序创建的对象。如浏览器自带的document,window等
自定义对象:
顾名思义,就是开发人员自己定义的对象。JS允许使用自定义对象,使JS应用及功能得到扩充
总结:本地对象是ECMA官方定义好的对象;内置对象也是本地对象,只包括Global对象和Math对象;宿主对象包括BOM和DOM对象。