JS运行过程,作用域和上下文的作用,自执行函数
2017-12-09 11:41
405 查看
两个作用域
函数定义时确定1.全局作用域
2.函数作用域
作用:隔离变量,不同作用域下同名变量不会有冲突
JS中没有块级作用域
两个上下文(或称为词法环境)
执行过程中产生1.全局上下文:一个JS文件有且仅有一个
2.函数上下文:每调用一次产生一个上下文,调用完毕后销毁
作用:预编译过程中存储预处理数据
运行的两个步骤
1.预编译过程
预处理数据包括:1.var对象:var a=10; —预处理—> var a=undefine
2.function : function fun(){} —预处理—> function fun=function(){}
(只有声明方式定义的函数有效,如上)
3.this
命名冲突时,function优先级最高
2.执行过程
命名冲突时,后面的覆盖前面的预编译完成后:1.为所有变量赋值
2.忽略声明方式定义的函数声明方式定义的函数,只处理表达式方式定义的函数,eg:
(function fun(){})();//称为自执行函数或立即执行函数
备注:表达式方式定义的函数,即在函数前面加个基本运算符,eg:+ - * / ? () 等等
相关文章推荐
- JS函数运行在它们被定义的作用域内,而不是它们被执行的作用域内
- Js bind 函数 使用闭包保存执行上下文
- js中自执行函数的作用
- javascript之词法作用域及函数的运行过程
- js 函数的执行环境和作用域链的深入解析
- js 函数的执行环境和作用域链的深入解析
- js笔记---作用域(执行上下文[execution context],活动对象) 闭包
- js笔记---作用域(执行上下文[execution context],活动对象) 闭包
- js学习笔记:执行上下文与作用域
- 在iframe里调用parent.func()引出的js函数运行在它们被定义的作用域里,而不是它们被执行的作用域里
- 深入学习JS执行--创建执行上下文(变量对象,作用域链,this)
- JS概念理解(三)——执行上下文、作用域与自由变量
- 第17周 项目1-体会函数参数传值 (运行结果及单步执行过程)
- 为什么j2ee的web研发过程中,有些jsp、html页面中,没有引入某个js(如test.js),却使用了test.js的某个函数,并且系统能够正常运行??
- js bind 函数 使用闭包保存执行上下文
- 火狐浏览器下JS代码不兼容setTimeout函数失效无效不运行执行的解决办法
- [js]js中函数的执行过程图解
- 从setTimeout看js函数执行过程
- js bind 函数 使用闭包保存执行上下文
- 理解js作用域原型链和执行上下文