- 博客(12)
- 收藏
- 关注
原创 防抖与节流
防抖 debounce函数防抖就是在函数需要频繁触发的情况下,只有足够的空闲时间,才执行一次。典型应用百度搜索框在输入稍有停顿时才更新推荐热词。拖拽function debounce(handler, delay) { delay = delay || 300; var timer = null; return function () { var _self = this, _args = arguments; clearTimeout(timer)
2021-04-07 11:23:47 113
原创 使用 Promise 封装一个 AJAX
使用 Promise 封装一个 AJAXajax 的 xhr 对象的 7 个事件onloadstart开始 send 触发onprogress从服务器上下载数据每 50ms 触发一次onload得到响应onerror服务器异常onloadend请求结束,无论成功失败onreadystatechangexhr.readyState 改变使触发onabort调用 xhr.abort 时触发实现代码const ajax = (obj)
2021-04-07 10:30:25 203
原创 对象引用问题
对象引用问题 - 1var a = { n: 1 };var b = a;a.x = a = { n: 2 };console.log(a.x); // --> undefinedconsole.log(b.x); // --> {n: 2}优先级。.的优先级高于=,所以先执行 a.x,堆内存中的{n: 1}就会变成{n: 1, x: undefined},改变之后相应的 b.x 也变化了,因为指向的是同一个对象。赋值操作是从右到左,所以先执行 a = {n: 2},a 的引
2021-04-07 10:03:22 206
原创 bind、apply手写
自封装 bind 方法因为 bind 的使用方法是 某函数.bind(某对象,…剩余参数)所以需要在 Function.prototype 上进行编程将传递的参数中的某对象和剩余参数使用 apply 的方式在一个回调函数中执行即可要在第一层获取到被绑定函数的 this,因为要拿到那个函数用 apply/** * 简单版本 */Function.prototype.myBind = (that, ...args) => { const funcThis = this;
2021-04-06 18:48:06 134
原创 函数式编程手写
函数式编程 compose实现以下功能:compose([a, b, c])('参数')=>a( b( c('参数') ) )function compose(funcs) { var len = funcs.length; var index = len - 1; for (let i = 0; i < len; i++) { if (typeof funcs[i] !== "function") { throw new TypeError("Ex
2021-04-06 18:35:11 100
原创 说输出
下面的代码会输出什么?function A(name) { this.name = name || "Tom"; this.msg = "use 'this.' set in function";}function B() {}B.prototype = A;var b = new B();console.log(b.name);console.log(b.msg);答案是:Aundefined分析b.name返回 A,是因为b上面没有name属性,他就会沿着原型链
2021-04-06 18:20:31 87
原创 Promise.all
Promise.allPromise.all 接收一个 promise 对象的数组作为参数,当这个数组里的所有 promise 对象全部变为 resolve 或 有 reject 状态出现的时候,它才会去调用 .then 方法,它们是并发执行的。Promise.all 简介Promise.all(promiseArray) 方法是 Promise 对象上的静态方法,该方法的作用是将多个 Promise 对象实例包装,生成并返回一个新的 Promise 实例。参数:promiseArray,是一个 P
2021-04-06 11:04:27 93
原创 2021-04-06
this 指向头条一面请分别写出下面题目的答案。function Foo() { getName = function () { console.log(1); }; return this;}Foo.getName = function () { console.log(2);};Foo.prototype.getName = function () { console.log(3);};var getName = function () { consol
2021-04-06 09:13:22 73
转载 2021-04-05
十个常见HTML5面试题问题1、新的 HTML5 文档类型和字符集是?答:HTML5 文档类型很简单: HTML5 使用 UTF-8 编码。问题2、HTML5 中如何嵌入音频?答:HTML5 支持 MP3、Wav 和 Ogg 格式的音频,下面是在网页中嵌入音频。问题3、HTML5 中如何嵌入视频?答:和音频类似,HTML5 支持 MP4、WebM 和 Ogg 格式的视频。问题4、除了 audio 和 video,HTML5 还有哪些媒体标签?答:HTML5 对于多媒体提供了强有力的支持,除了
2021-04-05 18:42:04 70
原创 关于iframe在vue中应用的问题
这里写自定义目录标题关于iframe在vue中应用的问题iframe的宽高无法根据内容撑开关于iframe在vue中应用的问题背景是一个vue3.0的个人博客,由于没有支持vue3.0的md展示手段(具体是vue-template-compiler版本太低目前最高2.6.12,而要求vue必须与其版本相同),所以我的解决方法是先将md文件转换成html文件然后由iframe直接导入页面。iframe的宽高无法根据内容撑开网上查阅了许多解决方法(其中多数是讲iframe自适应页面而非自适应内容),但基
2021-03-16 09:58:45 941
原创 关于http://localhost:8080./无法访问的问题
因为之前的vue项目build后找不到文件,便将base(vuepress的修改方式)由’/‘改为了’./’,但再次执行npm run dev时便会出现http://localhost:8080./,解决办法将base再该回默认即可。
2021-02-08 10:45:16 2522 1
原创 关于vue3中使用highlight的bug
highlight官方使用说明如下在vue3的环境下,执行.use命令后会报一个TypeError: createElement is not a function ,位置是在store.js之中(vuex),初步推测应该是版本兼容的问题,因为在highlight的说明中还使用着Vue而vue3已经将其替换为CreateApp来初始化(仅个人猜测,还望指正)。顺便吐槽一句用vue3开发好难啊,各种库都不好用了QAQ...
2021-02-07 09:17:49 1174 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人