js作用域和作用域链及预解析


Posted in Javascript onApril 11, 2019

变量---->局部变量和全局变量,

作用域:在某个空间范围内,可以对数据进行读写操作

局部作用域和全局作用域

js中没有块级作用域—一对括号中定义的变量,这个变量可以在大括号外面使用
函数中定义的变量是局部变量
作用域链:变量的使用,从里向外,层层的搜索,搜索到了就可以直接使用了
层层搜索,搜索到0级作用域的时候,如果还是没有找到这个变量,结果就是报错

在 JavaScript 中, 对象和函数同样也是变量。

在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。

JavaScript 函数作用域: 作用域在函数内修改。

JavaScript 局部作用域

变量在函数内声明,变量为局部作用域。

局部变量:只能在函数内部访问。

因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。

局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。

JavaScript 全局变量

变量在函数外定义,即为全局变量。

全局变量有 全局作用域: 网页中所有脚本和函数均可使用。 

如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

JavaScript 变量生命周期

JavaScript 变量生命周期在它声明时初始化。

局部变量在函数执行完毕后销毁。

函数参数

函数参数只在函数内起作用,是局部变量。

HTML 中的全局变量

在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。

作用域链:从子集作用域返回到父集作用域的过程

局部有能力去改外面(全局)的值

预解析:

预解析:在当前作用域下,js运行之前,会把带有var和function关键字的事先声明,并在内存中安排好。然后再从上到下执行js语句。

预解析只会发生在通过var定义的变量和function上。

以上所述是小编给大家介绍的js作用域和作用域链及预解析详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Mootools 1.2教程 同时进行多个形变动画
Sep 15 Javascript
js 可拖动列表实现代码
Dec 13 Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
node.js中的fs.unlink方法使用说明
Dec 15 Javascript
购物车前端开发(jQuery和bootstrap3)
Aug 27 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
May 22 Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
JavaScript偏函数与柯里化实例详解
Mar 27 Javascript
Vue实现导航栏的显示开关控制
Nov 01 Javascript
关于js陀螺仪的理解分析
Apr 11 #Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 #Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 #Javascript
vue实现新闻展示页的步骤详解
Apr 11 #Javascript
记一次用vue做的活动页的方法步骤
Apr 11 #Javascript
vue数据初始化initState的实例详解
Apr 11 #Javascript
Vue起步(无cli)的啊教程详解
Apr 11 #Javascript
You might like
php中定义网站根目录的常用方法
2010/08/08 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
通过循环优化 JavaScript 程序
2019/06/24 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
vue-router 中 meta的用法详解
2019/11/01 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
python实现定时提取实时日志程序
2018/06/22 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Python面向对象之Web静态服务器
2019/09/03 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
数字漫画:comiXology
2020/06/13 全球购物
怎样有效的进行自我评价
2013/10/06 职场文书
年终考核评语
2014/01/19 职场文书
学校社会实践活动总结
2014/07/03 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书