JS作用域的问题(二)
来源:互联网 发布:冰毒 知乎 编辑:程序博客网 时间:2024/06/05 23:03
本以为理解了js作用域,但是在网上看了一篇文章之后又发现以前对js作用域的理解有一点不全面,遂写了这篇文章。
参考:JavaScript Scoping and Hoisting
首先你应该了解js是没有块级作用域的!
接着看下面一段代码,alert值应该是什么?
var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar();
如果说这段代码的执行结果是10,你会不会有疑问?
在js中没有块级作用域,但是有函数作用域的,上面代码中的bar方法中的foo变量被提升了,可以这样理解:
var foo=1; function bar() { //javascript没有块级作用域, 在一个函数内任何地方声明的var都会被提到函数的最开头 //相当于这里有一个 var foo; alert(foo); //undefined, 因为函数内的var foo把外头的给覆盖了 if (!foo) { var foo = 10; //相当于foo = 10; var foo的声明被提到最前 } alert(foo);} bar();你懂了吗
阅读全文
0 0
- JS作用域的问题(二)
- JS作用域的问题
- js作用域的问题
- js 作用域问题
- 作用域链相关的问题(二)
- 一个Js方法作用域的问题
- js的this作用域问题
- JS中作用域的问题
- js的块级作用域问题
- Js的函数及作用域问题
- js 作用域的问题
- JS变量作用域的问题
- js中闭包的作用域问题
- JS中this的作用域问题
- js变量作用域问题
- JS变量作用域问题
- js作用域相关问题
- js深入浅出 函数和作用域(二)
- spring boot security学习
- 修改树莓派用户密码
- think in java第18章Java i/o系统课后习题
- DBUtils
- stm32_024_stm32pwm
- JS作用域的问题(二)
- 目标检测整个发展
- 投资项目评估笔记
- 650. 2 Keys Keyboard
- PostgreSQL操作
- 七牛云 from表单上传文件简单应用
- 不可变的String类
- filebeat源码分析之采集
- EOJ #3441 唐纳德与子串 (Easy)【KMP】