06 2020 档案

摘要:var fib = function(n){ if(n 0) return 0 if(n 1) return 1 return fib(n-1)+ fib(n-2) } // 迭代 var fib = function(n) { if(n 0) return 0 if(n 1) return 1 l 阅读全文
posted @ 2020-06-25 11:50 hh9515 阅读(297) 评论(0) 推荐(0)
摘要:iphone ios浏览器设计 用户点击了以后,要300ms延迟后才真正触发click事件, 因为用户点击后可能是(双击缩放(double tap to zoom),所以加了个300ms的限制 解决方法: 1.meta标签的viewport属性的 userscaable设置为false 禁用缩放 2 阅读全文
posted @ 2020-06-22 13:01 hh9515 阅读(246) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-06-21 04:56 hh9515 阅读(94) 评论(0) 推荐(0)
摘要:结论:先从mixin的从左到右执行,最后执行自己的。 注意mixin数组中按mixin1,mixin2,mixin3 这三个顺序先后排列。混入了created方法, 结果: 结论:先从mixin的从左到右执行,最后执行自己的。 阅读全文
posted @ 2020-06-20 15:48 hh9515 阅读(701) 评论(0) 推荐(0)
摘要:/* 思路:一个元素一个元素向后加和,并与当前元素对比,找到最大值,如果当前元素较大,那么从当前元素开始向后加和 */ 源代码: let arr = [1, 2, 25, -12, -55, 103, -250, 100, 120, 130] /* 思路:一个元素一个元素向后加和,并与当前元素对比, 阅读全文
posted @ 2020-06-19 12:11 hh9515 阅读(122) 评论(0) 推荐(0)
摘要:macOS 与windows相比,显然在UI设计和很多地方都下了大功夫, 但往往还是用力过猛 有些过度设计的UI特效并不实用 比如 1.滚动条的bounce,比如在OS X下的Chrome中,下拉滚动条到底的话向上回弹, 这个动画刚看上去好像符合直觉,觉得是一个很好的设计,但实际并不实用,当我拉到底 阅读全文
posted @ 2020-06-18 16:24 hh9515 阅读(270) 评论(0) 推荐(0)
摘要:比较两个树的diff过程是一个O(n3)的算法 虚拟DOM的diff测试是O(n)的,基于下面三个策略 1.tree diff 认为dom中一般不出现跨层级的操作,所以只在同一层级对比,如果同一层某一个节点不同,会将该节点下包含该节点的所有节点全删 2.component diff 不同组件会直接删 阅读全文
posted @ 2020-06-17 21:59 hh9515 阅读(295) 评论(0) 推荐(0)
摘要:filter属性, transform属性, (尽量使用带Z的3D属性, 浏览器会在页面渲染前为3D属性创建独立复合图层,在运行时为2D属性创建,所以如果是2D会在动画开始和技术依然检测到重绘) opacity属性会使用gpu加速, 好处是不会引起repait(重绘),完全由GPU处理,传统的动画中 阅读全文
posted @ 2020-06-17 21:47 hh9515 阅读(517) 评论(0) 推荐(0)
摘要:在HTML5规范中定义, section of the HTML5 spec User agents may opt to only try to obtain such resources when they are needed, instead of pro-actively fetching 阅读全文
posted @ 2020-06-17 21:38 hh9515 阅读(1631) 评论(0) 推荐(0)
摘要:问:如何判断两个矩形是否重叠? 当满足以下条件时,两个矩形不是重叠的 1.一个矩形在另一个的上面 2.一个矩形在另一个的左边 一个矩形可以被表示为两个点,分别是左上和右下。 我们定义下面四个变量来表示: 1. l1 第一个矩形的左上 2. r1 第一个矩形的右下 3. l2 第二个矩形的左上 4. 阅读全文
posted @ 2020-06-15 19:29 hh9515 阅读(716) 评论(0) 推荐(0)
摘要:前端异常处理: 错误类型: 1.运行时错误 window.onerror 2.资源加载错误. window.addeventlistner(‘error’) element.onerror 3.异步请求异常 封装XMLHtpprequest的send方法 4.promise异常 window.add 阅读全文
posted @ 2020-06-15 13:55 hh9515 阅读(382) 评论(0) 推荐(1)
摘要:DOM0级别与DOM2级别是什么 Historically, like DOM, the event models used by various web browsers had some significant differences. This caused compatibility pro 阅读全文
posted @ 2020-06-15 12:33 hh9515 阅读(190) 评论(0) 推荐(0)
摘要:window.onload是页面上所有资源加载完 DOMContentLoaded是HTML被parse完 (如果页面中有一个外引 async script和一个外引css,那么当HTML被parse完,这个事件就被触发了、这个css可能刚开始下载,js也可能刚开始下载) (如果页面中有一个外引 同 阅读全文
posted @ 2020-06-15 11:32 hh9515 阅读(237) 评论(1) 推荐(0)
摘要:ready与onload区别,哪个先执行: $(document).ready是jquery中的方法 $(document).ready用的(是兼容模拟和浏览器的DOMContentLoaded接口,根据文档,如果DOMContentloaded先执行了,ready中的内容会继续执行,否则DOMCo 阅读全文
posted @ 2020-06-14 22:07 hh9515 阅读(144) 评论(0) 推荐(0)
摘要:1.es6不存在变量提升,声明的class在它之前拿不到 2.class内部会开启严格模式, 比如constructor 直接写 a = 12, 不行的 3.class必须用new调用,不能被() call 4.class中所有方法不可枚举 5.es5原型链定义了Father和Son,Son.__p 阅读全文
posted @ 2020-06-12 17:40 hh9515 阅读(792) 评论(0) 推荐(0)
摘要:前者是 a=b&b=c&c=%asdf&xxx 是一种键值对的形式,中间以&作为分隔符,其实就像浏览器地址框中的url一样会被转义。也就是会被js中encodeURIComponent方法 后者可以理解为是一种增强的变种,用于传输文件,因为内部不会被转义,分隔符也不再是& 在请求头的content- 阅读全文
posted @ 2020-06-12 03:00 hh9515 阅读(243) 评论(0) 推荐(0)
摘要:var xhr = new XMLHttpRequest() xhr.onreadystatechange = function(){ if(xhr.readyStatus 4 && xhr.status == 200){ console.log( xhr.responseText ) } } xh 阅读全文
posted @ 2020-06-12 01:27 hh9515 阅读(74) 评论(0) 推荐(0)
摘要:资料: https://www.qinguanghui.com/react/%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%80%E5%B8%A7%E9%87%8C%E5%81%9A%E4%BA%86%E4%BB%80%E4%B9%88.html#vue-nexttick-%E4 阅读全文
posted @ 2020-06-12 00:51 hh9515 阅读(152) 评论(0) 推荐(0)
摘要:总结: 因为如果使用macrotask, vue的batch (一个一个执行nextTick内部维护数组中的函数) 的这个操作会放在下一个macrotask中执行, 当你调用nextTick的script解析完之后马上要开始执行微任务,微任务后又是宏任务微任务,(这个中间可能执行了很多个其他macr 阅读全文
posted @ 2020-06-12 00:21 hh9515 阅读(743) 评论(0) 推荐(0)
摘要:// 添加 // document.createElement // document.body.append // 删除 // document.body.removeChild // 移动 // insertBefore // #if the given node already exists 阅读全文
posted @ 2020-06-11 02:37 hh9515 阅读(125) 评论(0) 推荐(0)
摘要:问: meta一般有什么属性 http-equiv属性 ,之后可以在content属性中设置content-type 会被浏览器当做http-header来解析(本身是http-equivalent的意思) charset属性 阅读全文
posted @ 2020-06-10 23:44 hh9515 阅读(112) 评论(0) 推荐(0)
摘要:var var会变量提升,在js全局中声明的变量会挂在window上,并且不能被delete掉 let 1.在全局声明的时候,let不会将变量挂到window上 2.let不能重复声明 let a = 1 let a = 2 //Uncaught SyntaxError: Identifier 'a 阅读全文
posted @ 2020-06-10 21:59 hh9515 阅读(142) 评论(0) 推荐(0)
摘要:1 == true // true 2 == true // fase 在使用 == 比较的时候,会进行隐式转换 In this case 2 is number and true is boolean. The conversion rule is "while comparing a numbe 阅读全文
posted @ 2020-06-10 01:46 hh9515 阅读(152) 评论(0) 推荐(0)
摘要:因为nodejs是单线程的,所以一旦发生错误或异常,如果没有捕获,整个系统就会挂掉。 错误异常有两种场景的出现,一种是代码运行中throw new error没有被捕获,另一种是Promise的失败回调函数,没有对应的reject回调函数处理,针对这两种情况Nodejs都有默认的统一处理方式,就是给 阅读全文
posted @ 2020-06-10 01:04 hh9515 阅读(570) 评论(0) 推荐(0)
摘要:目前前端面试中考察算法知识, 对性能并没有很高要求,主要还是看你能不能答出来。 况且js这种动态语言的优势本身就是描述动作,而不是C++一样重在描述过程(压榨性能) 对树类问题如求叶子节点,求树高度,求树哪一层个数最多,找到一种通用解法: 1,首先先遍历树,为树的数据结构添加一些辅助属性,如pare 阅读全文
posted @ 2020-06-09 23:32 hh9515 阅读(162) 评论(0) 推荐(0)
摘要:思路: 1。reduce接收两个参数,cb和initialValue 2. cb接收四个参数 accumulator,curValue,index,arr 3. 如果有initialValue,那么initialValue被作为accumulator,curValue是从第0个开始的,index也是 阅读全文
posted @ 2020-06-09 15:36 hh9515 阅读(475) 评论(0) 推荐(0)
摘要:http2的优点· Enables Multiplexing· Compress HTTP Headers· Allows Server Push 1.多路复用(二进制分帧)http1的服务器处理是一个请求一个响应,http2是并行处理的假设客户端要发送helloworld,只能是先发送hello在 阅读全文
posted @ 2020-06-09 01:07 hh9515 阅读(207) 评论(0) 推荐(0)
摘要:flex:1 是什么意思 flex: 1 就是传入了一个参数, flex:1 相当于 flex-grow:1 flex-shrink:1 flex-basis: 0 阅读全文
posted @ 2020-06-08 19:32 hh9515 阅读(259) 评论(0) 推荐(0)
摘要:let a = ()=>{} let b = function () {} 1.No own this bindings Arrow functions do not have their own this value. The value of this inside an arrow funct 阅读全文
posted @ 2020-06-08 19:22 hh9515 阅读(122) 评论(0) 推荐(0)
摘要:处理所有请求结束的时间点 想象操场上有三个赛道,有三个人在跑圈,跑完后会有后面的人接力, 如果结束的时候,就是没有人接力了,当finishround为3的时候,就是最后一个请求结束的时候 阅读全文
posted @ 2020-06-08 19:06 hh9515 阅读(389) 评论(0) 推荐(0)
摘要:1 instanceof Number // false new Number(1) instanceof Number // true Strings and numbers are primitive values, not objects and therefore don't have a 阅读全文
posted @ 2020-06-08 17:47 hh9515 阅读(510) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-06-08 15:46 hh9515 阅读(118) 评论(0) 推荐(0)
摘要:transition 类似于slot,首先拿到它的子元素, 然后将父元素transition元素上你写的书写解析给child.data.transition 这样child.data.transition中就有了需要的数据, 之后在组件初始化过程中定义了很多钩子函数,在这些钩子函数间为组件添加类(c 阅读全文
posted @ 2020-06-06 13:31 hh9515 阅读(1749) 评论(0) 推荐(0)
摘要:keep-alive keepalive是一个内置组件,里面的render方法会拿到它子组件节点中的的第一个, 然后缓存到一个对象中, 并且把 vnode.data.keepAlive设为true 这里的vnode是指keep-alive包裹的子组件 最后把vnode返回来 所以keep-alive 阅读全文
posted @ 2020-06-04 16:50 hh9515 阅读(123) 评论(0) 推荐(0)
摘要:slot 1.普通slot,就是在模板编译的时候,对应生成父组件和子组件的VNode。 首先生成父组件的Vnode,然后生成子组件的Vnode,在生成子组件Vnode过程中会拿到父组件的上下文,然后就可以拿到父组件内插入的元素,然后对子组件中的slot中内容进行替换,后面进行渲染。 2.对于slot 阅读全文
posted @ 2020-06-04 14:02 hh9515 阅读(443) 评论(0) 推荐(0)
摘要:JSON.parse(JSON.stringify(obj)) 生成的对象中,如果原值是一个regExp对象或者Date对象,regExp只会拷贝出{},Date只会拷贝出字符串 let obj = { a:1, b: new Date(), c: /[s]/ } 为了解决这个问题,要书写clone 阅读全文
posted @ 2020-06-02 13:14 hh9515 阅读(269) 评论(0) 推荐(1)
摘要:^([a-zA-Z0-9\_\-\.]+)\@([a-zA-Z0-9\_\-\.]+)\.([a-zA-Z]{2,5})$ 阅读全文
posted @ 2020-06-01 20:03 hh9515 阅读(294) 评论(0) 推荐(0)
摘要:正则表达式中_和\_是一样的 都代表_ @和\@也是一样的 阅读全文
posted @ 2020-06-01 19:49 hh9515 阅读(1369) 评论(0) 推荐(0)
摘要:.不会匹配\r\n [\s\S] 匹配任意字符 let str = ` ` let reg1 = /./g let reg2 = /[\s\S]/g const r1 = reg1.test(str) console.log(r1); // false const r2 = reg2.test(st 阅读全文
posted @ 2020-06-01 18:03 hh9515 阅读(193) 评论(0) 推荐(0)
摘要:源代码: let s1 = 'CamelCaseStringInThisStuffParagraph' let s2 = 'user_define_under_score_fun' // 从underscore到camelcase比较简单 function toCameCase(s2) { let 阅读全文
posted @ 2020-06-01 18:00 hh9515 阅读(653) 评论(0) 推荐(0)