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 相关文章推荐
JavaScript 创建对象
Jul 17 Javascript
javascript工具库代码
Mar 29 Javascript
JS 页面计时器示例代码
Oct 28 Javascript
JS控制输入框内字符串长度
May 21 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
Apr 13 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 Javascript
详谈commonjs模块与es6模块的区别
Oct 18 Javascript
vue-router 源码之实现一个简单的 vue-router
Jul 02 Javascript
JS异步宏队列与微队列原理区别详解
Jul 02 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
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
xtree.js 代码
2007/03/13 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
实习评语大全
2014/04/26 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
早恋主题班会
2015/08/14 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle