JavaScript函数作用域详解与变量生命周期
需积分: 9 123 浏览量
更新于2024-08-11
收藏 15KB MD 举报
在今天的课程"DAY05_函数(下)"中,我们将深入探讨JavaScript中的函数概念及其相关的概念,特别是作用域、变量生命周期以及变量使用规则。以下是主要内容的详细解析:
1. **作用域**:
- 作用域是指变量在其定义范围内可以被访问的区域。JavaScript有全局作用域和局部作用域两种类型。
- **全局作用域**:在整个页面或脚本范围内有效,如`vara=123`,可以在`<script>`标签内外使用。全局作用域下有一个特殊的`window`对象,所有全局变量和函数都作为其属性或方法。
- **局部作用域**:在函数内部定义的变量,如`function fn(){ var b=456; }`,这些变量仅限于函数内部使用。全局和局部变量在同一名称下时,遵循"就近原则",即优先使用当前作用域的变量。
2. **变量生命周期**:
- 全局变量在页面加载时创建,直到页面关闭才会销毁。
- 局部变量在函数被调用时创建,函数执行完毕后自动销毁,不会占用内存直到被垃圾回收机制处理。
3. **变量使用规则**:
- **访问规则**:在寻找变量时,遵循自上而下的搜索顺序,先在当前作用域查找,找不到再向上级作用域查找,直到全局作用域。如果全局范围内找不到,就会抛出`ReferenceError`。
- **赋值规则**:尽管全局变量可以直接赋值,但在函数内部,对未声明的局部变量赋值是不允许的,会报错。同时,局部变量不会污染全局环境,这是JavaScript避免命名冲突的重要机制。
4. 示例代码:
```javascript
var num=100;
function fn(){
var num2=200; // 局部变量num2,仅在fn函数内部可见
console.log(num); // 100(全局变量)
console.log(num2); // 200(局部变量)
}
fn();
console.log(num); // 100(全局变量)
console.log(num2); // ReferenceError: num2 is not defined (局部变量已销毁)
```
通过理解和掌握这些知识点,你将能更有效地编写和管理JavaScript代码,避免变量污染和提升代码可读性。在实际编程过程中,理解作用域和变量规则至关重要,它们直接影响代码的组织和维护。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-07-31 上传
2020-03-25 上传
2020-04-18 上传
2023-07-14 上传
2021-10-15 上传
王哥是真漂酿
- 粉丝: 0
- 资源: 23
最新资源
- kissy-xtemplate:用于 KISSY 的独立 XTemplate 编译器
- Yuki
- LockWebPageDriver-master,抖音跳舞代码源码c语言,c语言
- 国际长途酒店机票预订网站模板
- saliengame_idler:2018年Steam Summer'Salien'Minigame的Javascript惰轮
- micronaut-hibernate-validator:与用于Micronaut的Hibernate Validator集成
- winecode
- 随机信号发生器实验室1
- thafas,文字冒险游戏c语言源码,c语言
- 基于JAVA图书馆预约占座系统计算机毕业设计源码+数据库+lw文档+系统+部署
- rg-mobile:RG手机
- Twitter_react
- LojaXXI
- zgxh,保龄球计分的c语言源码,c语言
- amanjain252002.github.io
- Interpolation:切比雪夫插值法。-matlab开发