摘要: 作用域链和闭包 1. 作用域 作用域是指在程序中定义变量的区域,该位置决定了变量的生命周期。通俗地理解,作用域就是变量与函数的可访问范围,即作用域控制着变量和函数的可见性和生命周期。 在 ES6 之前,ES 的作用域只有两种:全局作用域和函数作用域。 全局作用域中的对象在代码中的任何地方都能访问,其 阅读全文
posted @ 2022-07-16 14:20 千本嘤嘤嘤 阅读(35) 评论(0) 推荐(0)
摘要: 调用栈 1. 在执行之前就进行编译并创建执行上下文 当 JavaScript 执行全局代码的时候,会编译全局代码并创建全局执行上下文,而且在整个页面的生存周期内,全局执行上下文只有一份。 当调用一个函数的时候,函数体内的代码会被编译,并创建函数执行上下文,一般情况下,函数执行结束之后,创建的函数执行 阅读全文
posted @ 2022-07-16 11:23 千本嘤嘤嘤 阅读(60) 评论(0) 推荐(0)
摘要: ##例1 ##例2 ##例3 ##例4 ##总结 所谓变量提升(hoisting)指的是:var声明会被拿到函数或者全局作用域的顶部,位于作用域所有代码之前(红宝书P91) 通过在声明之前打印变量,可以验证变量会被提升,这时候输出的是undefined而不是Reference Error 阅读全文
posted @ 2022-07-16 11:19 千本嘤嘤嘤 阅读(44) 评论(0) 推荐(0)
摘要: 垃圾回收机制 1. 垃圾回收的方式 手动垃圾回收和自动垃圾回收 c语言是手动垃圾回收 javaScript是自动垃圾回收 2. javaScript垃圾回收的方式 调用栈中的垃圾数据回收方式 堆中垃圾数据的回收方式 3. 调用栈中的垃圾数据回收方式 当一个函数执行结束之后,JavaScript 引擎 阅读全文
posted @ 2022-07-16 10:51 千本嘤嘤嘤 阅读(638) 评论(0) 推荐(0)
摘要: 数据存储 1. javaScript数据类型 1.1 共8种 前面的 7 种数据类型称为原始类型,把最后一个对象类型称为引用类型 2. 判断数据类型的几种方法 2.1 typeof(常用于判断基本数据类型,对于引用数据类型全部返回Object) 语法: typeof [检测数据] 返回数据的类型名称 阅读全文
posted @ 2022-07-16 10:38 千本嘤嘤嘤 阅读(130) 评论(0) 推荐(0)
摘要: 事件 1. dom树 2. dom事件流 3. dom事件流验证 3.1 冒泡事件 3.2 捕获事件 3.3 阻止冒泡 event.stopPropagation(); 3.4 event.target 和 this 在事件处理程序中的区别 event.target: 实际点击的最近元素 this: 阅读全文
posted @ 2022-07-16 10:10 千本嘤嘤嘤 阅读(40) 评论(0) 推荐(0)
摘要: 布局 1. 盒模型宽度的计算 普通盒模型 默认盒子属性:box-sizing: content-box; offsetWidth = (width + padding + border) 不算margin 怪异盒模型 设置语句:box-sizing: border-box; offsetWidth 阅读全文
posted @ 2022-07-11 21:29 千本嘤嘤嘤 阅读(121) 评论(0) 推荐(0)
摘要: 谈谈闭包 1 我们在函数中创建的局部变量在函数执行结束后会被销毁,但有的时候我们并不希望他被销毁,希望在外部能够对其进行访问或者操作,这个时候就用到了闭包。 2 为什么不用全局变量代替局部变量呢? 因为全局变量是在全局作用域下的,能够被任意的访问或者修改,容易受到污染。而闭包这种形式,只能通过闭包函 阅读全文
posted @ 2022-06-23 20:49 千本嘤嘤嘤 阅读(24) 评论(0) 推荐(0)