- 博客(14)
- 收藏
- 关注
原创 js发布订阅设计模式?事件池?
发布订阅发布订阅是在我们指定的某个阶段,通知我们事先规划好的方法执行。发布订阅的核心机制和事件池类似,只不过发布订阅是实现“自定义事件”的处理,而事件池是对内置事件的处理。事件池的特点基于addEventListener向事件池中注入一些方法,基于removeEventListener从事件池移除方法,当触发某个行为的时候,浏览器会通知这些指定的方法执行。比如说当触发点击事件执行func:document.body.addEventListener('click',func,false);发
2020-08-17 22:33:13
500
原创 js中数据类型检测有哪些?typeof、instanceof、constructor、Object.prototype.toString.call()?
js中的数据类型在检测数据类型之前先需要了解有哪些数据类型。主要有基本数据类型(7种)、和引用数据类型(2种)。总共9种数据类型。基本数据类型Number:包含整数和浮点数。String:双引号和单引号作用效果一样。Boolean:该类型只有两个值,true和false。Null:null类型被看做空对象指针,用 typeof 操作符去检测null类型的值时,结果是 object 类型。Undefined:声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。Symbol:
2020-08-10 20:29:59
291
原创 函数的防抖和节流
函数的防抖防抖:一定时间内,事件在频繁的触发当中只能触发一次。如果你想要一个函数在频繁的点击触发中只执行一次,首先想到的是不是可以设置标识来判断,比如下面这个例子:防止频繁点击触发:可以设置标识进行判断,接下来都以点击btn按钮为例,点击按钮触发点击事件。<button id="btn">按钮</button>let isClick=false; //设置标识isClickbtn.onclick=function(){ if(isClick) return; //
2020-08-04 22:02:30
285
原创 js中对象的深度比较?重写Object.is?
对象的深度比较基本数据类型的值:基于 === 比较即可;函数比较:都转换为字符串再比较;对象比较: 正则和日期:都转换为字符串再比较; 普通对象/数组对象等: 先比较私有属性的个数,再分别遍历每个属性,看属性值是否一致 function _is(val1, val2) { const type1 = val1 === null ? 'null' : typeof val1; //首先获取数据类型 const type2 = val2
2020-07-28 11:00:03
404
原创 call、apply、bind用法及区别?bind call实现原理是什么?
call、apply、bind的用法,及改变this指向可以基于call/apply/bind等方式,强制手动改变函数中this的指向。call使用形式:【function】.call([context],params1,params2,…)【function】作为Function内置类的一个实例,可以基于__proto__找到Function.prototype的call方法,并且把找到的call方法执行;在call方法执行的时候,会把【function】执行,并把【function】中的thi
2020-07-25 22:31:13
311
原创 回调函数中的this?
回调函数中的this指向?回调函数中的this一般都是window,但是有特殊情况可以改变里面的this指向。首先先看看什么是回调函数吧。回调函数回调函数:把一个函数作为值传递给另一个函数,再在另一个函数中把这个函数执行(这是实现函数式编程重要的知识)。函数式编程:注重结果,不在乎过程,过程交给别人处理。命令式编程:注重过程,且需要自己实现过程。回调函数中的this:首来看一个例子:let obj = { i:0, func(){ setTimeout(function(){
2020-07-25 20:01:02
1980
原创 js中的this有几种情况?call/apply/bind改变this指向?
this?相信很多人刚开始学js的时候,常常会被this问题所困扰,this是啥?它有几种情况?this和执行上下文有什么关系?this:全局上下文的this是window;块级上下文中没有自己的this,它的this是继承所在上下文中的this(和箭头函数很像);在函数的私有上下文中,this的情况多种多样,这也是这篇文章的讨论目的。this是什么—说了这么多,this是什么呢?this是执行主体,而不是执行上下文 (执行上下文EC可以看看这篇博:https://www.jianshu.co
2020-07-25 18:01:00
434
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人