每周三集前端免费视频
每年帮助超100万前端爱好者学习

JavaScript的变量作用域和闭包操作

今天有朋友问我关于JavaScript关于闭包的知识,那我就专门写一篇文章,希望可以帮助更多的前端同学。

JavaScript的闭包

变量的作用域:

每个函数来定义作用域,函数内部用var来声明的,他们的作用域只在本函数内有用。函数可以用来创造函数作用域。此时的函数像一层半透明的玻璃,在函数里面可以看到外面的变量,而在函数外面无法看到函数里的变量。

我们先来看一个例子,在例子中我们定义了三个函数,分别是funa ,funb,func,在每个函数里我们都用 var 独自声明了一个变量,然后进行打印。(代码)

这时我们用node 运行程序是没有问题的!但是如果我们钥匙把变量 a  ,在funb 函数里打印,程序就会报错.(代码如下)

如果这个例子我们理解了,那我们再来看一个更为复杂的例子。例子里先定义了 func1 函数,然后又在 func1 函数里定义了 func2 ,然后再func1里打印func2里的一个变量,这时是找不到变量的,程序会报错。

 

简单的闭包函数

通过返回一个函数,带出了上下文,让 a  变量可以对外暴露了。

我们再看下边这个代码,这时控制台打印的结果是什么那?

答案是:0   1   0

经典案例:在循环时需要经常的用到闭包的知识。

html代码

JS代码

 

 

未经允许不得转载:技术胖-胜洪宇关注web前端技术 » JavaScript的变量作用域和闭包操作
分享到: 更多 (0)

评论 1

  1. #1

    看是看懂了,但是实际运用起来可能不会

    清风爱衬衣8个月前 (08-31)回复