首页 > Web开发 > 详细

js作用域

时间:2020-06-22 18:25:14      阅读:44      评论:0      收藏:0      [点我收藏+]

 

作用域 就是代码名字(变量)在某个范围内起作用和效果,目的是为了提高程序的可靠性更重要的是减少命名冲突

作用域(es6)之前:全局作用域 局部作用域

全局作用域:整个script标签或者是一个单独的js文件

局部作用域(函数作用域):在函数内部就是局部作用域,这个代码的名字只在函数内部起效果和作用

 


变量的作用域:根据作用域的不同分为两种 全局变量跟局部变量

全局变量:在全局作用域下的变量(如果在函数内部没有声明直接赋值的变量也叫全局变量,但是不建议使用)
function fun(){num2 = 20} num2也是全局变量
局部变量:在局部作用域下的变量(在函数内部的变量,函数的形参也可以看成局部变量)

区别:从执行效率来看

全局变量只有浏览器关闭的时候才会销毁,比较占内存资源
局部变量当程序执行完毕就会销毁,比较节约内存资源

 

块级作用域

现阶段js没有块级作用域,在es6中新增的块级作用域
块级作用域就是用 {} 花括号包含的,在块级作用域定义的变量,外部不能调用。

 

作用域链

内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构称为作用域链(类似于就近原则)
var num = 10
function fu(){ var num = 20; function fun(){ console.log(num) } } 会打印出20(先去上一级fn()查找,如果没有num才会去全局变量num查找,如果fn()有num变量,就会返回num
变量的值)

 

js作用域

原文:https://www.cnblogs.com/xhxdd/p/13177415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!