![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js基础
文章平均质量分 58
么灬名字
4年前端工程师,有大厂开发经验,可视化项目经验丰富
展开
-
JS Proxy
JS ProxyProxy是一个代理,当我们对某个数据值进行操作的时候,进行拦截处理,监听操作。let a = new Proxy(target, handler);他有两个参数:第一个传入的参数是我们要对其拦截的那个对象(这个对象可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。第二个参数是一个对象,这个对象的属性是当执行一个操作时定义代理的行为的函数,(就是拦截的回调函数)示例:let test = { 'name':'ni' } let a原创 2021-03-24 16:13:11 · 933 阅读 · 0 评论 -
VUE对数组的劫持操作
VUE对数组的劫持操作大家都知道 vue的双向绑定都是用object.defineProperty操作的,但是这个方法只能监听对对象的操作,不支持数组,所以vue对数组监听用了另一种方式,就是把数组的原型上的方法进行了更改,相当于对数组操作的方法(push,pop,shift等)进行了监听。以下是对数组方法unshift举例<div id="app"></div> <script type="text/javascript"> let state = [原创 2021-03-23 15:17:33 · 585 阅读 · 0 评论 -
object.defineProperty()用法
defineproperty用法概念数据描述符:存取描述符概念object.defineProperty用来定义对象的一些属性,或者修改一些已存在的属性语法糖为object.defineProperty(obj,name,desc) 这个方法需要传三个参数,obj是要修改的的对象,name是对其设置的属性名,最后一个是属性描述符一般通过为对象的属性赋值的情况下,对象的属性可以修改也可以删除,但是通过Object.defineProperty()定义属性,通过描述符的设置可以进行更精准的控制对象属原创 2021-03-22 17:22:42 · 156 阅读 · 0 评论 -
前端面试总结(持续更新)
sd原创 2021-03-11 09:31:33 · 164 阅读 · 0 评论 -
用JS判断数据类型(常见四种)
常用的js判断数据类型(number、boolean、symbol、string、object、undefined、function)方法有三种:typeof判断toString判断constructorinstanceoftypeof判断typeof判断基本类型可以(null除外,null也返回object),但是指引类型均返回object,如图:toString判断toString()是Object的原型方法,调用该方法,默认返回当前对象的[[Class]]。这是一个内部属性,其格式为[obje原创 2020-09-14 17:21:08 · 199 阅读 · 0 评论 -
js判断浏览器及终端
js判断浏览器及终端判断浏览器判断ie为某个版本鉴别PC及移动端判断浏览器判断浏览器时我们需要用到navigator.userAgentnavigator是一个对象,他包含了有关浏览器的信息userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2...原创 2019-08-20 16:49:20 · 173 阅读 · 0 评论 -
requestAnimationFrame动画简介
requestAnimationFrame动画简介与settimeout setInterval 比较兼容性特点对比css3动画requestAnimationFrame使用样例requestAnimationFrame主要用途是按帧对网页进行重绘。与settimeout setInterval 比较requestAnimationFrame的优势,在于充分利用显示器的刷新机制,比较节省系统...原创 2019-06-20 16:54:38 · 194 阅读 · 0 评论 -
各浏览器对ES2015/ES6的支持情况(桌面端、移动端、以及服务器
JS - 各浏览器对ES2015/ES6的支持情况(桌面端、移动端、以及服务器)2015年6月, ES2015(即 ECMAScript 6、ES6) 正式发布。ES2015 是该语言的一个显著更新,也是自 2009年 ES5 标准确定后的第一个重大更新。ES6 提供了许多新特性,但并不是所有的浏览器都能够完美支持。好在目前各大浏览器自身也加快速度兼容 ES6 的新特性,其中对 ES6 新特性...转载 2019-05-31 14:43:08 · 933 阅读 · 0 评论 -
js实现搜索框的节流与防抖
js处理搜索框,节流与防抖防抖节流以下是完整示例代码:在输入框输入时,要搜索某个字符串,基于性能考虑,肯定不能用户没输入一个字符就发送一次搜索请求,一种方法就是等待用户停止输入,比如过了500ms用户都没有再输入,那么就搜索此时的字符串,这就是防抖;节流比防抖宽松一些,比如我们希望给用户一些搜索提示,所以在用户输入过程中,没过500ms就查询一次相关字符串,这就是节流。防抖防抖的实现思路:每...原创 2019-05-21 11:21:09 · 11565 阅读 · 3 评论 -
原生JS实现bind方法
原生JS实现bind方法第一种方法在return function 里使用 self.call(ctx):第二种是使用apply第三种使用call第四种也是用的apply总结以下是回的方法Function.prototype.my_bind = function(ctx){ console.log(this) //这里指向的是函数 不是window let se...原创 2019-05-20 09:04:15 · 493 阅读 · 0 评论 -
js事件委托,事件冒泡及捕获
js事件委托,事件冒泡及捕获事件冒泡事件捕获事件委托阻止冒泡事件冒泡事件冒泡:事件冒泡会从当前触发的事件目标一级一级往上传递,依次触发,直到document为止。事件捕获:事件捕获会从document开始触发,一级一级往下传递,依次触发,直到真正事件目标为止。以下示例:创建三个div , 给每一个div添加事件,(利用事件监听添加点击事件,第三个参数是布尔值,默认false,false是事...原创 2019-05-14 14:20:23 · 3370 阅读 · 1 评论