JavaScript快速入门-ECMAScript对象介绍
一、概念介绍
在 ECMAScript 中,所有对象并非同等创建的。一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象。
要理解这三种对象,先要理解宿主环境。
1、宿主环境
一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序。
如:web浏览器,一些桌面应用系统等。即由web浏览器或是这些桌面应用系统构成的环境即宿主环境。
在python中类似于python解释器。
2、原生对象(本地对象)
独立于宿主环境的ECMAScript提供的对象。与宿主环境无关,在javascript(网景浏览器)、nodejs(node平台)、jscript(ie浏览器)、typescript(微软平台)等等中均有这些对象。
简单来说,本地对象就是 ECMA-262 定义的类(引用类型或原始类型)。在运行过程中动态创建的对象,需要new。
在python中类似原生对象,如:数字、字符串、列表、元组、字典、类。
3、内置对象(build-in)
由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现,即在引擎初始化阶段就被创建好的对象。
这意味着开发者不必明确实例化内置对象,它已被实例化了。
在python中的内建对象,比如sys、os、math等模块。
4、宿主对象
即由 ECMAScript 实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象,ECMAScript官方未定义的对象都属于宿主对象,所有非本地对象都是宿主对象。
宿主提供对象原理--->由宿主框架通过某种机制注册到ECscript引擎中的对象,如宿主浏览器(以网景为参考)会向ECscript注入window对象,构建其实现javascript。
宿主对象就是执行JS脚本环境提供的对象。对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,所以又称为浏览器对象,如IE、Firefox等浏览器提供的对象。不同的浏览器提供的宿主对象可能不同,即使提供的对象相同,其实现方式也大相径庭!这会带来浏览器兼容问题,增加开发难度。
浏览器对象有很多,如Window和Document等等。
有点类似python中的各种*ython,比如:Python,Cython,Jython,IRONpython。其实就是为运行python脚本而提供的专有环境。
1、PYTHON,CYTHON
将这两个放在一起,是因为python的标准和原始实现就是基于cython的,由于python的源代码是需要将python源码首先编译为c代码,然后再编译为本机代码的方式运行的,由于c语言和本机代码的关系,执行速度比较快。
2、JYTHON
首先将python编译为基于java字节码的字节码文件,然后在java虚拟机jvm上运行java字节码。
3、IRONpython
将python编译为基于.NET的CLI的中间语言文件,然后在CLR上运行。
5、自定义对象
顾名思义,就是开发人员自己定义的对象。JS允许使用自定义对象,使JS应用及功能得到扩充。
二、本地对象
简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。有以下这些:
- Object(对象)
- Function(函数)
- Array(数组)
- String
- Boolean
- Number
- Date
- RegExp
- Error
- EvalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError
常用对象:
String对象
Array对象
Date对象
Number对象
Function对象
RexExp对象
三、内置对象
Global对象
Math对象
四、宿主对象
DOM对象
BOM对象
JavaScript快速入门-ECMAScript对象介绍的更多相关文章
- JavaScript快速入门-ECMAScript本地对象(Date)
JavaScript中的Date 对象用于处理日期和时间. var myDate=new Date() #Date 对象会自动把当前日期和时间保存为其初始值. 一.Date对象的方法 方法 示例 n ...
- JavaScript快速入门-ECMAScript本地对象(RexExp)
一.概述 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 正则表达式是由一个字符序列形成的搜索模式. 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容. 正则表达式 ...
- JavaScript快速入门-ECMAScript本地对象(String)
一.String对象 String对象和python中的字符串一样,也有很多方法,这些方法大概分为以下种类: 1.索引和查找 1.charAt() 返回指定位置的字符. 2.charCodeAt( ...
- JavaScript快速入门-ECMAScript本地对象(Array)
Array对象 Array对象和python里面的list对象一样,是用来存储多个对象值的对象,且方法和属性基本上类似. 一.属性 lenght 二.方法 1.concat() 用于连接两个或多个 ...
- JavaScript快速入门-ECMAScript本地对象(Number)
Number 对象是原始数值的包装对象. 创建一个Number对象:var myNum=new Number(value); 注意: 1.参数 value 是要创建的 Number 对象的数值,或是要 ...
- JavaScript快速入门-ECMAScript基础语法
一.JavaScript引入方式 1.行内式 <script> alert(123); </script> 2.外链式 <script src='custom.js'&g ...
- JavaScript快速入门-ECMAScript运算符
1.逻辑运算符 逻辑与:&&(and) 逻辑或:||(or) 逻辑非:!(not) 逻辑 AND 运算符(&&) 逻辑 AND 运算的运算数可以是任何类型的,不止是 B ...
- JavaScript快速入门-ECMAScript函数
JavaScript函数(定义.参数.返回值.闭包.匿名函数) 一.函数定义 function functionName(arg0, arg1, ... argN) { statements } 函数 ...
- JavaScript快速入门-ECMAScript语句
JavaScript语句(if.for.for in.do...while.while.break.continue.switch) 一.if语句 if (condition) statement1 ...
随机推荐
- sqlserver tablediff 实用工具
tablediff 是sqlserver自带的实用工具 sqlserver 2012 在110目录下,sqlserver2008在100目录下 官方参考文档如下: https://docs.micro ...
- [Visual Studio] [Config] [Transformation] [SlowCheetah] 在非Web工程中使用Transformation
1. 为VS安装SlowCheetah插件 https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.Sl ...
- 转:Web 开发中很实用的10个效果【附源码下载】
原文地址:http://www.cnblogs.com/lhb25/p/10-useful-web-effect.html 在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多 ...
- man -k : nothing appropriate.
➜ workplace man -k zip zip: nothing appropriate. 出现这种情况,是索引库没有建立. man 和 whatis 共用一个索引库的. 我们使用 man w ...
- java实现安全证书相关操作
https://blog.csdn.net/zhushanzhi/article/details/77864516 版权声明:本文为博主原创文章,未经博主允许不得转载. package test; i ...
- [Spark SQL_3] Spark SQL 高级操作
0. 说明 DataSet 介绍 && Spark SQL 访问 JSON 文件 && Spark SQL 访问 Parquet 文件 && Spark ...
- 彻底理解lib和dll
转自:http://www.cppblog.com/amazon/archive/2009/09/04/95318.html 两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口 ...
- 1.js基础(以通俗易懂的语言解释JavaScript)
1.JavaScript组成: ECMAScript: 解释器.翻译 -->几乎没有兼容问题 DOM: Document Object Model -->有一些操作不兼容 BOM: Bro ...
- 6.基本数据结构-双端队列(Deque)
一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...
- 20145236《网络对抗》Exp1 逆向及Bof基础
20145236<网络对抗>Exp 1逆向及Bof基础 一.实践目标 运行原本不可访问的代码片段 强行修改程序执行流 以及注入运行任意代码. 二.基础知识及实践准备 理解EIP寄存器及其功 ...