javascript中关于执行环境的杂谈


Posted in Javascript onAugust 14, 2011

——这就要从JAVASCRIPT的解释器开始说起了:每当JAVASCRIPT解释器开始执行一个函数的时候,都会创建一个执行环境,并且还会产生一个和这个函数息息相关的变量对象,在这个执行环境中定义的一切变量或者函数都会被他保存起来。但是他就像有关部门,可能和你息息相关,但是你永远找不到他的身影,你是无法调用这个对象的,但是JAVASCRIPT解析器处理数据时便会调用到它。
点题就到此为止了,让我们真刀真枪来说说执行环境吧。先从全局执行环境开始,他处于整个执行环境的最外面,并且是作为window对象的属性添加的。

举个例子:

<html> 
<head> 
<script type="text/javascript"> 
var a = 1; 
(function(){ 
alert(window.a === a); 
})(); 
</script> 
</head> 
<body> 
</body> 
</html>

上面这个栗子,最后会弹出true。也就是说,我们在最外围定义的全局变量,最终都收编到了window上面了。每当一个执行环境中的代码全部执行结束之后,里面一干变量以及函数的定义都会被押下,销毁。吃果果的兔死狗烹啊。

但不得不说的是,Javascript的实现允许有多个全局执行对象。纳尼?!是的,用一个说烂了的栗子吧:IFRAME,IFRAME里面拥有者不同于浏览窗口的全局作用环境。当然如果这里牵涉了跨域获取属性,那么就要说到安全性了。恩,点到为止。就说那么多吧

Javascript 相关文章推荐
TinyMCE 新增本地图片上传功能
Nov 05 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
Jul 12 Javascript
判断window.onload是否多次使用的方法
Sep 21 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
Jan 23 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 Javascript
vue devtools的安装与使用教程
Aug 08 Javascript
详解Vue前端对axios的封装和使用
Apr 01 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
Vue 2.0双向绑定原理的实现方法
Oct 23 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
JS中的模糊查询功能
Dec 08 Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 Javascript
js中字符替换函数String.replace()使用技巧
Aug 14 #Javascript
js 通用javascript函数库整理
Aug 14 #Javascript
javascript中的数字与字符串相加实例分析
Aug 14 #Javascript
SyntaxHighlighter语法高亮插件使用说明
Aug 14 #Javascript
javascript高级学习笔记整理
Aug 14 #Javascript
jquery获得下拉框值的代码
Aug 13 #Javascript
Jquery中对数组的操作代码
Aug 12 #Javascript
You might like
PHP调用三种数据库的方法(2)
2006/10/09 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
JavaScript中的闭包
2016/02/24 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python简单计算文件夹大小的方法
2015/07/14 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
override和overload的区别
2016/03/09 面试题
婚礼新郎父母答谢词
2014/01/16 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
2016新年慰问信范文
2015/03/25 职场文书
公开致歉信
2019/06/24 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android