菜单

JavaScript本地对象 内置对象 宿主对象

2019年5月5日 - CSS/CSS3

先是解释下宿主情形:一般宿主遭遇外壳程序成立与有限支撑,只要能提供js引擎实行的条件都可称之为外壳程序。如:web浏览器,一些桌面应用系统等。即由web浏览器或是那几个桌面应用类别现已的蒙受即宿主处境。

      在ECMAScript中,全数目的并非同1创制的。

1、当地对象

     
一般的话,能够创立并选择的靶子有三种:当地对象、内置对象和宿主对象。

ECMA-26二把地面对象(native object)定义为“独立于宿主遇到的 ECMAScript
落成提供的目的”。

壹. 本地对象

      ECMA-262把本地对象(native
object)定义为“独立于宿主情形的ECMAScript完结提供的靶子”。

      何谓宿主意况?
“宿主”,生物学上,一般是指寄生的古生物选用的寄生体,如:火影里的“白”(哈哈哈)。此处的宿主遇到,轻便的话尽管用户的机器碰着,包含操作系统和浏览器

      本地对象包涵如下内容:Object、Function、String、Array、Boolean、Number、Date、
RegExp、Error、伊娃lError、RangeError、ReferenceError、SyntaxError、TypeError、UENVISIONIError。由此可见,本地对象是ECMA-二定义的类(引用类型)。

 

再来看一下,“本地对象”包罗怎么样内容:

二. 置于对象

      ECMA-26二把停放对象(built-in object)定义为“
由ECMAScript达成提供的,独立与宿主蒙受的享有目的,在ECMAScript程序开端施行时出现”。那代表开荒者不必显然实例化内置对象,它已经被实例化了。ECMA只定义了三个放置对象,即Global和Math(它们也是本地对象,依据定义,全体内置对象都以本土对象)。

壹)Math对象的常见属性:E(算术常量e,即自然对数的底数,约为贰.71八)、PI(圆周率,约为3.1415九)。

     Math对象的科学普及方法:

           max(x,y): 再次来到x和y中非常的大的值;     min(x,y): 再次来到x和y中十分小的值;      
  random():
再次来到0~1之间的轻巧数;

           round(x): 对数4舍5入;              floor(x):
对数向下取整;                    ceil(x): 对数向上取整; 

二)Global对象是ECMAScript中最特别的对象,因为其实它根本不设有,不信,在浏览器console中输入Global,报错。

   
 全局对象是预约义的对象,作为JavaScript全局函数和全局属性的占位符。全局对象不是别的对象的习性,所以它没知名称?。

   
 在顶层JavaScript代码中,可以用关键字this来引用全局对象。但一般不必用那种办法引用全局对象,因为大局对象是效能域链的头,那表示全体非限定性的变量和函数名都会作为该对象的性质来询问。例如,当JavaScript代码引用parseInt函数时,它引用的是全局对象的parseInt属性。

   
 全局对象是功力域链的头,这意味在顶层JavaScript中表明的变量都将改成全局对象的属性。

   
 全局对象只是八个指标,而不是类。即未有构造函数,也无能为力实例化多个新的大局对象。

     顶层属性(全局属性):

           NaN: 提醒有个别值是或不是数字值; undefined: 未定义的值;
Infinity: 正的无穷大的数值。 

     顶层函数(全局方法):

           isNaN(): 检查实验某些值是不是为数值;                              
isFinite(): 质量评定某些值是或不是为无穷大的值;

           Number(): 把目的的值调换为数值;                          
String(): 把对象的值转变为字符串;                            Boolean():
把对象的值转变为布尔值;

           parseInt(): 解析二个字符串并回到整数;                    
parseFloat(): 解析二个字符串并赶回浮点值;

           encodeUTiguanI(): 将字符创编码为U帕杰罗I;                          
decodeU奥迪Q五I(): 解码有个别编码的U陆风X8I;

           encodeURubiconIComponent(): 将字符串编码为U奔驰G级I组件;    
decodeU昂科威IComponent(): 解码有些编码的U帕杰罗I组件; 

           escape(): 对字符实行编码;                                  
   unescape(): 对由escape编码的字符串进行解码;

           eval(): 总括JavaScript字符串,并把它看作脚本代码来实践;

 

Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError。

三. 宿主对象

      全部非本土对象都以宿主对象(host
Object),即由ECMAScript完结的宿主情形提供的靶子。

      全体的BOM和DOM对象都以宿主对象。

     
那如下代码中的oPerson对象呢,既不是ECMA官方概念的本地对象,也不是宿主对象,它是用户自定义的靶子(user
defined object)。

var oPerson = new Object();
oPerson.name = “ting”;
oPerson.age = 23;

      

经过能够看看,本地对象正是ECMA-26二 定义的类(引用类型)。

4. 总结 

     
本地对象是ECMA官方概念好的目的;内置对象也是本地对象,只囊括Global对象和Math对象;宿主对象包罗BOM和DOM对象。

 

 

 

时间:2014-10-20

地点:合肥

引用:http://www.xiaoxiaozi.com/2010/04/05/1740/#article_nav_0 

        http://www.w3school.com.cn/js/pro_js_object_types.asp 

2、内置对象

ECMA-26贰把停放对象(built-in object)定义为“由 ECMAScript
达成提供的、独立于宿主情状的持有指标,在 ECMAScript
程序初阶推行时出现”。那意味着开辟者不必明显实例化内置对象,它已被实例化了。

平等是“独立于宿主情状”。依据定义大家仿佛很难分清“内置对象”与“本地对象”的分别。而ECMA-2陆15头定义了五个放置对象,即 Global 和 Math
(它们也是本土对象,依照定义,每种内置对象都以本地对象)。

这么,内置对象是本土对象的一种。而其包括的二种对象中,Math对象大家平时采纳,可那几个Global对象是甚东西啊?

Global对象是ECMAScript中最尤其的指标,因为实在它根本不设有,但大家要通晓,在ECMAScript中,不存在独立的函数,全体函数都必须是某些对象的章程。类似于isNaN()、parseInt()和parseFloat()方法等,看起来都以函数,而实际上,它们都是Global对象的艺术。而且Global对象的不二等秘书技还不只有那么些。

 三、宿主对象

由ECMAScript完成的宿主境况提供的靶子,能够领略为:浏览器提供的对象。全体的BOM和DOM都以宿主对象。

4、自定义对象

 根据JS的靶子扩充机制,用户能够自定义JS对象。

总结:

JS中,可以将对象分为“内部对象”、“宿主对象”和“自定义对象”三种。

1,内部对象

js中的内部对象包括Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各种错误类对象,包括Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError。

其中Global和Math这两个对象又被称为“内置对象”,这两个对象在脚本程序初始化时被创建,不必实例化这两个对象。

 

2.宿主对象

宿主对象就是执行JS脚本的环境提供的对象。对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,所以又称为浏览器对象,如IE、Firefox等浏览器提供的对象。不同的浏览器提供的宿主对象可能不同,即使提供的对象相同,其实现方式也大相径庭!这会带来浏览器兼容问题,增加开发难度。

浏览器对象有很多,如Window和Document等等。

 

3.自定义对象

顾名思义,就是开发人员自己定义的对象。JS允许使用自定义对象,使JS应用及功能得到扩充

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图