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 相关文章推荐
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
javascript实现连续赋值
Aug 10 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
JavaScript之json_动力节点Java学院整理
Jun 29 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
Oct 15 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
Jan 09 Javascript
关于Vue源码vm.$watch()内部原理详解
Apr 26 Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
Sep 29 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
JS Thunk 函数的含义和用法实例总结
Apr 08 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
玩转虚拟域名◎+ .
2006/10/09 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
php把session写入数据库示例
2014/02/26 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
python实现密码强度校验
2020/03/18 Python
利用python进行文件操作
2020/12/04 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
护理学毕业生求职信
2013/11/14 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
初中教师个人工作总结
2015/02/10 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
Java Spring Lifecycle的使用
2022/05/06 Java/Android
nginx之内存池的实现
2022/06/28 Servers