Javascript是没有块级作用域的,在语句块中声明的变量将成为语句块所在代码片段的局部变量。例如:

 if(true){
var x=3;
}
console.log(x);

结果输出3.

再如:

 var x=5;

 function a(){
if(!x){
var x=10;
}
console.log(x);
}
a();

结果是10.因为变量声明的提升,原理是这样的,举个例子:

 if(a==undefined){
alert("ok");
}
var a=1;

这里,在声明变量a之前先引用了变量a,结果不会报错,还会弹出"ok",上面的代码就等同与以下的代码:

 var a;
if(a==undefined){
alert("ok");
}
a=1;

最新文章

  1. 常用js功能函数集合
  2. CentOS安装Nginx-1.6.2+安全配置
  3. BZOJ4525——[Usaco2016 Jan]Angry Cows
  4. 十大谷歌Google搜索技巧分享
  5. c#部分---好题--顺便练练“类的知识”
  6. iOS已发布应用中对异常信息捕获和处理
  7. Win8.1 64bit安装Genymotion模拟器
  8. C#/winform 旅游管理信息系统
  9. CPUから広がり
  10. 用jQuery绑定事件到动态创建的元素上
  11. [Swift]LeetCode1 .两数之和 | Two Sum
  12. JavaWeb基础-Jsp的请求与响应
  13. Python从入门到精通之eighth!
  14. SQLmap注入启发式检测算法
  15. CSS文本超出指定行数省略显示
  16. vue 生命周期钩子的理解 watch computed
  17. python 多线程示例
  18. Spring+Hibernate实现动态SessionFactory切换
  19. shell脚本中,for基于列表进行循环的实现方法
  20. 关于protel 99se 汉化后某些菜单消失的解决方法

热门文章

  1. xampp怎么操作数据库mysql
  2. iOS RunLoop详解
  3. HashMap 扩容机制
  4. cxGrid时间格式与导出Excel
  5. 【题解】CF611H New Year and Forgotten Tree
  6. ACM中使用 JAVA v2. 1
  7. unknown facet type would you like to ignore facet from module
  8. LeetCode-11-6
  9. 剑指offer 面试3题
  10. C语言转义字符的使用方法