稳扎稳打JS——自由变量
来源:互联网 发布:nginx解决跨越 编辑:程序博客网 时间:2024/06/05 08:05
自由变量的作用域在程序运行前就已经确定!
- 自由变量相当于Java中的全局变量,它在外层作用域中声明,但在内层作用域中使用,如下所示:
var a = 1;function fn(){ console.log(a);//a为自由变量}
当自由变量所属的函数被定义时,自由变量的值就已经确定,是该函数定义处的父作用域中同名变量的值。
在上述示例中,函数内部的a是自由变量,它的值是fn的父作用域中a的值,也就是1。
来看下面的示例:输出结果为1
var a = 1;function fn1(fn){ var a = 2; fn();}function fn2(){ console.log(a);}fn1(fn2);
fn2中的自由变量a在其定义时就已经确定,是它定义处的父作用域中的同名变量的值,而fn2定义处的父作用域为全局作用域,全局作用域中a的值为1,因此输出的结果为1。
- 注意:自由变量的值一定要去函数定义处找!
3 1
- 稳扎稳打JS——自由变量
- 稳扎稳打JS——“对象”
- 稳扎稳打JS——“继承”
- 稳扎稳打JS——this
- 稳扎稳打JS——执行上下文
- JS概念理解(三)——执行上下文、作用域与自由变量
- JS - 自由变量与作用域链
- 稳扎稳打JavaScript(二)——图解对象内存模型
- 稳扎稳打JavaScript(四)——闭包
- 自由了吗 ——读《自由》
- 高斯消元+枚举自由变量
- 自由变量记录
- 自由变量和约束变量
- JS——js的变量
- js图片自由运动
- 稳扎稳打JavaScript(一)——作用域链内存模型
- 稳扎稳打JavaScript(三)——创建对象的几种方式
- 独立经济体——自由
- iMessage Apps and Stickers, Part 1
- Yii2.0 视图 views
- 2016ACM网络赛和现场赛总结
- IDEA不能不用的快捷键
- Oracle 查询优化改写
- 稳扎稳打JS——自由变量
- webpack resolve的作用
- C# 已知经纬度计算两点距离函数
- 改造二叉树_纪中3894_dfs+LIS
- C# 计算MD5哈希字符串
- 动态规划解最长公共子序列问题LCS(一)
- 深入Android通过Apache HTTP访问HTTP资源
- C函数读写配置文件
- Effective Python 中文版