javascript进阶
文章平均质量分 77
闭包,原型链,作用域链...
五彩斑斓的歌
这个作者很懒,什么都没留下…
展开
-
函数的作用域和执行上下文
作用域是一套关于如何存储变量当中的值,并且能在之后对这个值进行访问和修改的规则。任何一对花括号 { } 中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用域。执行上下文栈按照函数的调用顺序来管理执行上下文,栈底永远是全局上下文,栈顶是当前正在执行的函数。变量对象是与执行上下文相关的数据作用域,用于存储被定义在上下文中的变量和函数声明。词法作用域(静态性):JavaScript 的作用域在代码的。由当前执行环境与所有父级执行环境的一系列变量对象组成,动态作用域(动态性)原创 2024-08-09 14:06:39 · 351 阅读 · 0 评论 -
script标签中的async和defer
当浏览器遇到带有 async 属性的 script 时,请求该脚本的网络请求是异步的,不会阻塞浏览器解析 HTML,一旦网络请求回来之后,如果此时 HTML 还没有解析完,浏览器会暂停解析,先让 JS 引擎执行代码,执行完毕后再进行解析。当浏览器遇到带有 defer 属性的 script 时,获取该脚本的网络请求也是异步的,不会阻塞浏览器解析 HTML,一旦网络请求回来之后,如果此时 HTML 还没有解析完,浏览器不会暂停解析并执行 JS 代码,而是等待 HTML 解析完毕再执行 JS 代码。原创 2024-08-06 19:39:18 · 727 阅读 · 0 评论 -
JS垃圾回收机制
新生代的对象为存活时间较短的对象,即新产生的对象,通常只支持1~8M的容量,而老生代的对象为存活时间较长或常驻内存的对象,即经历过新生代垃圾回收后还存活下来的对象,容量通常比较大。当我们的内存能够使我们流畅的运行代码,其实我们是没有必要进行清理内存的,它会稍稍延迟一下清理过程,也无需一次性清理完所有非活动对象内存,可以按需逐一进行清理直到所有的非活动对象都清理完毕。它的标记阶段和标记清除算法没有什么不同,只是标记结束后,标记整理算法会将不需要清理的对象向内存的一端移动,最后清理掉边界的内存。原创 2024-08-05 22:50:05 · 1381 阅读 · 0 评论