javascript 宿主分为:浏览器,nodejs(服务器端),weex/RN,Tessel(嵌入式)等
宿主对象(host object) 由宿主提供的对象,在浏览器中window对象以及其下边所有的子对象(如bom、dom等等),在node中是globla及其子对象,也包含自定义的类对象。
非宿主对象
原声对象(也叫内部对象、本地对象、native object ) 独立于宿主环境的ECMAScript实现提供的对象。与宿主无关,在javascript(远景浏览器)、nodejs(node平台)、jscript(ie浏览器)、typescript(微软平台)等等中均有这些对象。简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。在运行过程中动态创建的对象,需要new。如: Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、Global
内置对象 由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现,即在引擎初始化阶段就被创建好的对象。这意味着开发者不必明确实例化内置对象,它已被实例化了。如: Global(全局对象)、Math
内置对象之Global Global即为全局对象,Global对象是ECMAScript中最特别的对象,因为实际上它根本不存在! 在ECMAScript中,不存在独立的函数,所有函数都必须是某个对象的方法。 类似于isNaN()、parseInt()和parseFloat()方法等,看起来都是函数,而实际上,它们都是Global对象的方法。 而且Global对象的方法还不止这些。具体参考http://www.w3school.com.cn/jsref/jsref_obj_global.asp
拓展方法内容 无论是什么对象,均可以通过prototype进行功能拓展。
打印浏览器的全局对象 打印自定义的对象,会显示出源码,但是打印全局对象,因为这些全局对象是程序自带的,是二进制编译的,所以无法显示出来源代码,它就只能给你‘native code’
ECMAScript(非宿主,核心)
本地对象 Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、Global内置对象 Math 和 Global Global:14个顶层函数(全局函数) 6个和编码相关
decodeURI() 解码某个编码的 URI。 decodeURIComponent() 解码一个编码的 URI 组件。 encodeURI() 把字符串编码为 URI。 encodeURIComponent() 把字符串编码为 URI 组件。 escape() unescape() 2个判断 isFinite() 检查某个值是否为有穷大的数。 isNaN() 检查某个值是否是数字。 4个转换 2个对象 Number() 把对象的值转换为数字。 String() 把对象的值转换为字符串。 2个字符串 parseFloat() 解析一个字符串并返回一个浮点数。 parseInt() 解析一个字符串并返回一个整数。 2个 eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。 getClass() 返回一个 JavaObject 的 JavaClass。DOM(宿主)
DOM API DOM DocumentDOM ElementDOM AttributeDOM EventBOM(宿主) WindowNavigatorScreenHistroyLocation