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 相关文章推荐
JavaScript 仿关机效果的图片层
Dec 26 Javascript
javascript Ext JS 状态默认存储时间
Feb 15 Javascript
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
js中 关于undefined和null的区别介绍
Apr 16 Javascript
JS实现在状态栏显示打字效果完整实例
Nov 02 Javascript
动态加载JavaScript文件的两种方法
Apr 22 Javascript
Bootstrap源码解读模态弹出框(11)
Dec 28 Javascript
jquery设置css样式的多种方法(总结)
Feb 21 Javascript
微信小程序登录换取token的教程
May 31 Javascript
Vue将页面导出为图片或者PDF
Aug 17 Javascript
JavaScript实现英语单词题库
Dec 24 Javascript
JavaScript中的各种宽高属性的实现
May 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
php操作mysqli(示例代码)
2013/10/28 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
理解PHP中的stdClass类
2014/04/18 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
php里array_work用法实例分析
2015/07/13 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
解决python对齐错误的方法
2020/07/16 Python
Python 内存管理机制全面分析
2021/01/16 Python
资产评估专业学生的自我鉴定
2013/11/14 职场文书
自主招生自荐信
2013/12/08 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
尼克胡哲观后感
2015/06/08 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android