JavaScript基础知识总结——作用域和预解析

导读:本篇文章讲解 JavaScript基础知识总结——作用域和预解析,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1、JavaScript作用域

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

2、js的作用域(es6)之前

全局作用域,局部作用域

3、全局作用域

整个script标签  或者是一个单独的js文件

例如  var  num=10;

4、局部作用域(函数作用域)

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

例如  function  fn( ){

//局部作用域

}

5、变量的作用域

根据作用域的不同,我们变量分为全局变量和局部变量

(1)全局变量:在全局作用域下的变量,在全局下都可以使用

注:如果在函数内部  没有声明直接赋值的变量,也属于全局变量

(2)局部变量:在局部作用域下的变量,后者在函数内部的变量就是局部变量

注:函数的形参也可以看做是局部变量

(3)从执行效率来看全局变量和局部变量

全局变量只有浏览器关闭的时候才会销毁,比较占内存资源

局部变量当我们程序执行完毕就会销毁,比较节约内存资源

6、作用域链

内部函数访问外部函数的变量,采取的是链式查找的方式来决定取那个值 这种结构我们称为作用域链(就近原则)

7、预解析

我们js引擎运行js  分为两步:预解析  代码执行

  • 预解析   js 引擎会把js 里面所有的var  还有function 提升到当前作用域的最前面
  • 代码执行  按照代码书写的顺序从上往下执行

预解析 分为  变量预解析(变量提升)和函数预解析(函数提升)

  • 变量提升 就是把所有的变量声明提升到当前的作用域最前面  不提升赋值操作
  • 函数提升  就是把所有的函数声明提升到当前作用域的最前面  不调用函数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/46306.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!