摘要:函数的合成如果一个值要经过多个函数,才能变成另外一个值,就可以把所有中间步骤合并成一个函数,这叫做函数的合成。柯里化所谓柯里化,就是把一个多参数的函数,转化为单参数函数。柯里化之前柯里化之后参考链接中的柯里化及精巧的自动柯里化实现 函数的合成 如果一个值要经过多个函数,才能变成另外一个值,就可以把所有中间步骤合并成一个函数,这叫做函数的合成(compose)。 const compos...
摘要:概念函数节流和函数防抖,两者都是优化高频率执行代码的一种手段。函数节流与函数防抖都是为了限制函数的执行频次,以优化函数触发频率过高导致的响应速度跟不上触发频率,出现延迟,假死或卡顿的现象。节流指定时间间隔内,只会执行最后一次任务。 概念 函数节流和函数防抖,两者都是优化高频率执行js代码的一种手段。 函数节流(throttle)与 函数防抖(debounce)都是为了限制函数的执行频次...
摘要:它们的区别之一就是在计算机中的存储方式不同基本类型数据是将变量名及值存储在变量对象中,而引用类型的数据是将变量名和地址存储在变量对象中,真正的值是存储在堆内存中。 showImg(https://segmentfault.com/img/remote/1460000017151449); 说点别的 这是《关于 JavaScript 你必须要知道的 33 个概念 》系列的第三篇文章,今天...
摘要:局部变量位于作用域链的起始位置,因此访问速度最快全局变量位于作用域链的最末端,因此访问速度最慢。如访问时间实例属性第一层原型属性第二层原型属性在同一个函数中没必要多次读取同一个对象成员,建议第一次查询到值后就将其存储在局部变量中。 javascript中有四种基本的数据存取位置:字面量、变量、数组元素、对象成员。 1.访问字面量和局部变量的速度最快,访问数组元素和对象成员相对较慢。 2...
摘要:所有作为参数传入的值都会成为对象的数组元素执行上下文的生命周期创建阶段在这个阶段中,执行上下文会分别创建变量对象,建立作用域链,以及确定的指向。 JavaScript深入之从原型到原型链 构造函数->原型每个函数都有一个 prototype 属性,指向实例的原型原型:每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型实例->原型...