摘要:
在一些常见的触发resize事件和scroll的情况下,我们会使用函数防抖,来控制函数的触发次数,因为resize实时在变化,那函数就要实时在触发,这会带来一个致命的问题,对一些机型老旧的电脑,有可能使浏览器卡顿,下面我们来看一个例子 此时我们可以看到每次scroll事件触发时,num的值会发生变化 阅读全文
摘要:
惰性函数是js函数式编程的另一个应用,惰性函数表示函数执行的分支只会在函数第一次调用的时候执行,他的应用情景在于当我们遇到一个需要判断场景去调用不同的方法时,避免重复进入函数内的if判断,也就是说if判断只进行一次,之后函数就会被分支里的代码替换掉 我们先看个例子 在js中,不能存在同名函数,因为在 阅读全文
摘要:
js采用的是词法作用域链,在代码书写阶段,作用域链就被定义了,所以 对于新手来说,要搞读懂js代码,首先就要弄清楚js的作用域链,下面看一份代码 这个函数中 我们定义了一个test 函数,该函数中我们可以看出作用域链层层嵌套,首先是全局的,然后是test,然后是bar,在上下文执行栈中,全局执行环境 阅读全文
摘要:
js中的闭包是一个比较常见的核心概念,之前我们讲的重载,函数柯里化中都用到了闭包,那么到底什么才是闭包呢,闭包能为我们干嘛呢? 按照js犀牛书的定义,闭包是指函数变量可以保存在函数作用域内,这句话的意思貌似太笼统了,而且范围很广,一般的函数内都会包裹变量,那么也可以说有变量的函数就叫闭包吗?显然不是 阅读全文
摘要:
函数柯里化是js函数式编程的一项重要应用,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。假设我们要计算一个表达式如下 第一种是我们常见的,第二种参数分开调用不常见,但我们也能实现他 如下 显然 ,这样的写法很受参数个数的限制,比较不现实,那么我们需要一个通用函数来实现以上 阅读全文
摘要:
刚才看了波神的一波js高级进阶,感觉自己要学的还有很多,想深入的了解js,应该从整个底层开始,一步一步剖析代码执行的过程,这样才能理解的更深入,而不是似懂非懂。 预告一波,接下来几天会更新一些js进阶操作,js的核心基础还会更一点的,之后主要是函数柯里化,惰性函数,时间循环机制等。路漫漫其修远兮,吾 阅读全文
摘要:
在面向对象语言中, 重载就是一组具有相同名字、不同参数列表的函数,但在js中,重载的实现不能像js一样那么简单,因为js名字相同的函数会相互覆盖,这样只能输出最后一个同名函数,哪怕参数不一样,那我们怎样才能做到重载呢, 首先我们可以利用js的函数中一个参数,arguments,该参数有个属性,len 阅读全文
摘要:
原型链其实不难,难的是__proto__和prototype两个属性,这两个属性经常会难道一大批新手,首先我们要知道在js中对象都是从构造函数过来的,创建对象的方式可以看我前卖弄一篇文章 https://www.cnblogs.com/maoxiaodun/p/10012321.html 首先我们按 阅读全文
摘要:
js中对象创建方式有多种,最常见的就是调用Object构造函数,下面我们来列举对象的创建的方式 一、Object构造 此方法是最常见的生成方式,但不能指定想要的对象类型 二、字面量构造 此方法是上面的补充,他与new Object()没有区别 三、工厂模式创建 var obj = createObj 阅读全文
摘要:
iframe 属于HTML的三种结构之一的框结构(其余两种树结构和层结构),iframe是一个拥有独立窗体的标签,他非常损耗资源,不易过多使用 上面是一个简单的iframe iframe是否会阻塞页面的加载呢,答案是的,通常页面首先会进行解析渲染,将html 文件解析为dom树,在将css文件解析为 阅读全文