“所谓解释型语言,就是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。简单说,解释型语言就是边翻译边执行,而编译型语言是先编译后执行,两者的操作过程不同。”“所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条”“Interpreted computing languages are languages whose source code is processed by a software program called an interpreter that reads in the text and immediately acts upon the instructions defined by the text.”那看下下面这段程序——var scope = 'global'; var f = function() {
console.log(scope); // 输出undefined
var scope = 'f';
}
f();
上面这段程序会输出undefined,原因是执行console.log(scope);时程序会发现函数内的那个变量scope“已经定义但没初始化”。那我的问题就是,如果解释型语言是解释一句执行一句的话,当执行console.log(scope);时它怎么知道函数里有个变量scope?
console.log(scope); // 输出undefined
var scope = 'f';
}
f();
上面这段程序会输出undefined,原因是执行console.log(scope);时程序会发现函数内的那个变量scope“已经定义但没初始化”。那我的问题就是,如果解释型语言是解释一句执行一句的话,当执行console.log(scope);时它怎么知道函数里有个变量scope?
解决方案 »
- 关于javascript设置cookie的几个问题求教大牛
- JS刷新指定aspx页面
- 这段js是什么意思,有点看不懂,js是新手,麻烦了. 。
- 【easyui】datagrid的combobox动态添加数据源求解
- 在firefox中,怎样屏蔽掉鼠标中键?
- 跟踪了一天,就不知道怎么用,关于grid的问题.......
- ※※搜集javascript事件大全,希望大家踊跃提供,有例程更好※※
- 怎么在页面打开时将全屏的窗口调为正常状态?
- Javascript里面利用动态增加表格行来输入数据,但是提交之后再返回(按IE里面的BACK),数据全部丢失,怎么来处理?
- onestab请进
- 左侧菜单向左移动
- 想做一个网页的信息纪录,求指导
js变量声明是放在代码执行之前的
只需记住:同一片作用域,相同的变量名指代的必定是同一个变量不止这个,还有很多类似看似神奇的,对js机制理解深了自然明白,不理解解释也是枉然
console.log(scope); // 输出undefined ,预编译,生成变量scope,值为undefined,由于解释性,赋值语句晚于上面那句,就输出undefined了
var scope = 'f';
}
楼主研究这个帖子下,包你头更加痛
http://bbs.csdn.net/topics/390300541
<script>
//var scope = 'global';
var f = function() {
console.log(scope); // 输出undefined
//var scope = 'f';
}
f();
if(for())