当前位置:网站首页>js之作用域、作用域链、全局变量和局部变量
js之作用域、作用域链、全局变量和局部变量
2022-04-23 06:25:00 【小白蛋挞】
目录
一、Javascript作用域
就是代码名字在某个范围内起作用和效果。目的时为了提高程序的可靠性更重要的时减少命名冲突。
es6之前:全局作用域和局部作用域。
1、全局作用域
整个script标签,或者是一个单独的js文件。
2、局部作用域
在函数内部就是局部作用域,这个代码的名称只在函数内部起作用。
二、作用域链
只要是代码,就至少有一个作用域,写在函数内部的局部作用域,如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域。
根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能够被内部函数访问,就称作用域。 原则是就近原则。
以下代码输出 12 ,还有注意点是函数只有被调用才会执行。只有执行到语句f2()时,才会执行函数f2()中的语句。
var num = 23;
function f1() {
var num = 12;
function f2() {
console.log(num);
}
f2();
}
f1();
三、根据作用域的不同,变量可以分为两种
1、全局变量
在全局作用于域的变量,在函数外部定义的变量,在代码任何位置都可以使用。num就是一个全局变量,b也是,因为如果在函数内部,没有声明直接赋值的变量也是全局变量。
<script>
var num = 20;
console.log(num);
function fn() {
var a = 20;
b = 30;
console.log(a);
}
</script>
2.局部变量
在函数内部的变量,只能在函数内部使用。a是局部变量,形参也是局部变量。
//局部变量在程序执行完毕就会销毁,比较节约
//全局变量只有在浏览器关闭的时候才会销毁,比较占资源
版权声明
本文为[小白蛋挞]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_61547956/article/details/124128032
边栏推荐
- Reflection on the systematic design of Android audio and video caching mechanism
- 安装配置淘宝镜像npm(cnpm)
- Authorization+Token+JWT
- 王者荣耀-unity学习之旅
- Reflect on the limitations of event bus and the design and implementation of communication mechanism in component development process
- Django使用mysql数据库报错解决
- 14.事务处理
- [2020WC Day2]F.采蘑菇的克拉莉丝(子树和查询、轻重儿子思想)
- 关于素数的不到100个秘密
- keytool: command not found
猜你喜欢
随机推荐
[牛客练习赛68]牛牛的粉丝(矩阵快速幂之循环矩阵优化)
The difference and application of VR, AR and MR, as well as some implementation principles of AR technology
数论之拓展欧几里得
Methods of database query optimization
反思 | 事件总线的局限性,组件化开发流程中通信机制的设计与实现
手游性能优化
4.多表查询
13.用户和权限管理
10. Update operation
公共依赖模块common的处理
Mysql 索引
Failed to install Tui editor, quick solution
Reflection on the systematic design of Android audio and video caching mechanism
js之DOM学习获取元素
反思|开启B站少女心模式,探究APP换肤机制的设计与实现
redis连接出错 ERR AUTH <password> called without any password configured for the default user.
[COCI]Lampice (二分+树分治+字符串哈希)
9. Common functions
Processing of common dependency module
Authorization+Token+JWT








