JS中变量提前简单分析
来源:互联网 发布:战地2网络对战平台 编辑:程序博客网 时间:2024/05/01 16:25
关于JS中的变量申明提前,最简单的就是下列例子
var scope = "global";function f() { alert(scope); var scope = "local"; //覆盖全局变量 alert(scope);}
大家可能误以为函数f的第一个alert会输出"global",因为代码此时还没有执行到var语句声明局部变量的代码行。
其实不然,由于函数作用域的特性,局部变量在整个函数体内始终是有定义的,亦即,在函数体内局部变量覆盖了同名的全局变量。尽管如此,只有程序执行到var语句时,局部变量才会被赋值。因此上述过程等价于,将函数体内的变量声明“提前”至函数体顶部,而变量的初始化保留在原处。
function f() {var scope; //函数体顶部声明局部变量alert(scope); //输出"undefined"scope = "local"; //变量初始化赋值alert(scope); //输出"local"}
唯一要注意的是申明提前的作用域————————只能提前到该作用域的顶端
1 0
- JS中变量提前简单分析
- js 变量声明提前
- js中变量的函数作用域和声明提前
- 变量声明提前 总结 js
- js作用域链中变量提前的问题
- js 变量声明(显隐声明,声明提前)
- JavaScript 中对变量和函数声明提前的示例
- JavaScript中对变量和函数声明的提前
- JavaScript 中对变量和函数声明的“提前”
- JavaScript 中对变量和函数声明的“提前”
- 变量声明提前
- JavaScript 变量声明提前
- js 全局变量、局部变量的作用域;变量声明提前;无块级作用域
- 变量声明提前和函数声明提前
- 关于js声明提前
- js中的声明提前
- js(javascript)小谈变量声明(显隐声明,声明提前)
- js(javascript)小谈变量声明(显隐声明,声明提前)
- android 之activity生命周期(转载)
- IP在数据库中存储
- 跳跃游戏二——动态规划
- 【注册表】修改默认和起始网页的位置
- 加密算法rc4和xxtea的对比
- JS中变量提前简单分析
- PowerDesigner如何去掉黑色网格线
- Matlab数据的可视化 -- 图形格式的设置
- 解释器模式的一个简单示例
- MySQL数据库基础(一)(启动-停止、登录-退出、语法规范及最基础操作)(持续更新中)
- Codeforces Round #400 (Div. 1 + Div. 2, combined)D. The Door Problem【2-sat Tarjan+思维建图】
- 大屏开发遇到的问题汇总
- eclipse的Tasks面板不显示TODO标签的一种解决办法
- 数据库模式