-
使用 `call`, `apply`, `bind` 改变 JS 中 this 的指向
用法与区别 这三个函数可以被任意函数调用,也就是函数又调用了函数。 他们传入的第一个参数比较特殊,是传入一个对象之类的进去,这样调用他们三个的那个函数的内部语句的 this 环境就变成了你传进去的对象的环境了。 为了方便对比,我们用一个表格来清晰地展示它们的核心区别: 方法 作用 参数 返回值 执行时机 call() 调用函数,并指定 this 值 thisArg, arg1... -
JS 里三种途径比较深拷贝
深拷贝的三种方式
-
在 JS 里实现防抖和节流处理,以优化性能
节流和防抖都可以通过 lodash 库函数使用,分别是: _.debounce _.throttle 防抖 每次触发事件的时候,立即取消上次的触发,并且开始新的等待。如果在指定时间内确实没有再触发,才会真的开始执行事件。 Tip 可以想象一直在长按某个点击按钮,但是必须停下来,才能触发第二次。 常见案例 输入框实时搜索(比如用户输入关键词时的接口请求) 防止用户... -
JS 中面向对象的编程——原型对象和方法
彻底搞懂它,对于理解 JS 的面向对象编程、性能优化和代码组织至关重要。
-
JS 的 GC 机制和内存泄露
简单介绍 JS 里的垃圾回收机制和内存泄露问题
-
JS 闭包 (Closure)
简单介绍 JS 里的一些闭包特性
-
函数剩余参数和展开运算符
函数剩余参数 (Rest Parameters)、动态参数 (Arguments Object)、展开运算符 (Spread Operator) 有关内容
-
JS 中的变量和函数提升
JS 中的变量和函数提升相关知识
-
DOM 里的“坐标”基础
获取各种坐标,无论是元素还是鼠标
-
CSS 自定义属性(变量)
自定义属性(有时候也被称作CSS 变量或者级联变量)包含的值可以在整个文档中重复使用。由 var() 函数来获取值