博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浏览器、宿主环境、执行期环境
阅读量:5828 次
发布时间:2019-06-18

本文共 922 字,大约阅读时间需要 3 分钟。

  javascript只能寄生在某个具体的环境才能够工作

  javascript运行环境一般都由宿主环境和执行期环境构成,其中宿主环境是由外壳程序生成的,如浏览器就是一个外壳程序,它提供了一个可控制浏览器窗口的宿主环境。执行期环境则有嵌入到外壳程序中的javascript引擎生成,在这个环境中javascript能够生成内置静态对象和初始化执行环境等。  

  javascript是一种脚本语音,它本身不提供I/O(输入和输出)接口,也没有与系统和外界通信的能力,更不能操作外围设备、管理内存、修改注册表等行为,这些功能全部交给宿主环境完成的,例如,在客户端浏览器(外壳程序)的宿主环境中,Javascript通过window对象的alert()方法及document对象的write()和writeIn()方法输出信息,而借助window的prompt()方法接收信息。当然,在其他宿主环境中可能会使用不同的宿主对象来完成以上功能。例如,在windows环境中,微软公司开发的WSH就是一种脚本语言的宿主环境,它就定义了类似window对象的wscript对象来表示全局对象。

  不仅web浏览器是外壳程序,只要能提供javascript引擎执行的环境都可以做外壳程序。比如,服务器,桌面应用系统也都能够允许JavaScript引擎执行的运行环境,这些运行环境也是宿主环境。  

        web浏览器允许javascript引擎对其进行控制,并通过DOM组件实现对HTML和XML文档的操作。

执行期环境是由宿主环境通过脚本引擎创建的,实际上就是由Javascript引擎创建的一个代码解析初始化环境,内容主要包括:

    1、一套与宿主环境想联系的规则

    2、javascript引擎内核(基本语法和规范、逻辑、命令和算法)  

    3、一组内置对象的API

    4、其他约定

  当然,不同的javascript引擎定义的初始化环境是不同的,这就形成了所谓的浏览器兼容性问题,因为不同的浏览器使用的是不同的浏览器引擎。

 

转载于:https://www.cnblogs.com/1rookie/p/7832930.html

你可能感兴趣的文章
CentOS7.3 jdk、tomcat 安装步骤
查看>>
【WPF】SnapsToDevicePixels与UseLayoutRounding二者到底有什么区别?供参考
查看>>
layui 颜色设计感
查看>>
#测试框架推荐# test4j,数据库测试
查看>>
围观网络大牛如何回答Chrome的15个刁钻面试题?
查看>>
除非万不得已,别 Catch!
查看>>
[LeetCode刷题日记] Remove Duplicates from Sorted Array
查看>>
python爬虫之图片下载APP 2.0
查看>>
SparkSQL自适应执行
查看>>
python setup.py bdist_wheel 报错的处理办法
查看>>
JS简单实现决策树(ID3算法)
查看>>
Vue 组件库 heyui@1.18.0 发布,新增地址选择、图片预览组件
查看>>
GitHub 宣布私有库免费,最多可3人协作
查看>>
分库分表的正确姿势,你GET到了么?
查看>>
人工智能相关职位数据分析-需求分析
查看>>
SAP成都研究院许聚龙:Hello, Coresystems!(下)
查看>>
SEO快排之深刻教训,快速排名如何做更好
查看>>
AIOps 会抢走你的工作吗?
查看>>
给一句 SQL 就能做多维分析
查看>>
谈谈英国的移动支付和“虚拟银行卡”
查看>>