翻译网站平台建设,led设计网站建设,网站售后服务模板,网络营销产品推广1.1局部作用域
局部作用域分为函数作用域和块作用域。
1.函数作用域: 在函数内部声明的变量只能在函数内部被访问#xff0c;外部无法直接访问。 总结#xff1a; (1)函数内部声明的变量#xff0c;在函数外部无法被访问 (2)函数的参数也是函数内部的局部变量 (3)不同函数…1.1局部作用域
局部作用域分为函数作用域和块作用域。
1.函数作用域: 在函数内部声明的变量只能在函数内部被访问外部无法直接访问。 总结 (1)函数内部声明的变量在函数外部无法被访问 (2)函数的参数也是函数内部的局部变量 (3)不同函数内部声明的变量无法互相访问 (4)函数执行完毕后函数内部的变量实际被清空了
2.块作用域: 在JavaScript中使用{ }包裹的代码称为代码块代码块内部声明的变量外部将[有可能]无法被访问。 总结 (1)let声明的变量会产生块作用域var不会产生块作用域 (2)const声明的常量也会产生块作用域 (3)不同代码块之间的变量无法互相访问 (4)推荐使用let或const
1.2全局作用域 script标签和 .js文件的[最外层]就是所谓的全局作用域在此声明的变量在函数内部也可以被访问。 全局作用域中声明的变量任何其它作用域都可以被访问 注意 1.为window对象动态添加的属性默认也是全局的不推荐! 2.函数中未使用任何关键字声明的变量为全局变量不推荐! ! ! 3.尽可能少的声明全局变量防止全局变量被污染
1.3作用域链
作用域链本质上是底层的变量查找机制。 ➢在函数被执行时会优先查找当前函数作用域中查找变量 ➢如果当前作用域查找不到则会依次逐级查找父级作用域直到全局作用域 总结: 1.嵌套关系的作用域串联起来形成了作用域链 2.相同作用域链中按着从小到大的规则查找变量 3.子作用域能够访问父作用域父级作用域无法访问子级作用域
1.4垃圾回收机制
垃圾回收机制(Garbage Collection)简称GC JS中内存的分配和回收都是自动完成的内存在不使用的时候会被垃圾回收器自动回收
内存的生命周期 JS环境中分配的内存一般有如下生命周期: 1.内存分配当我们声明变量、函数、对象的时候系统会自动为他们分配内存 2.内存使用即读写内存也就是使用变量、函数等 3.内存回收使用完毕由垃圾回收器自动回收不再使用的内存 说明: ➢全局变量一般不会回收(关闭页面回收) ➢一般情况下局部变量的值不用了会被自动回收掉
内存泄漏程序中分配的内存由于某种原因程序未释放或无法释放叫做内存泄漏
1.5 JS垃圾回收机制-算法说明
堆栈空间分配区别: 1.栈操作系统)由操作系统自动分配释放函数的参数值、局部变量等基本数据类型放到栈里面。 2.堆操作系统一般由程序员分配释放若程序员不释放由垃圾回收机制回收。复杂数据类型放到堆里面。
下面介绍两种常见的浏览器垃圾回收算法引用计数法 和 标记清除法 1 2 根部已经访问不到所以自动清除
1.5闭包
概念一个函数对周围状态的引用捆绑在一起内层函数中访问到其外层函数的作用域 简单理解闭包 内层函数外层函数的变量 先看个简单的代码: 闭包作用封闭数据提供操作外部也可以访问函数内部的变量 闭包的基本格式 但是闭包可能会引起内存泄露
1.6变量提升
变量提升是JavaScript中比较“奇怪”的现象它允许在变量声明之前即被访问仅存在于var声明变量 变量提升 只提升变量声明不提升变量赋值