发布于2021-04-09 07:09 阅读(250) 评论(0) 点赞(28) 收藏(4)
1. 防抖和节流
什么是防抖和节流,他们的应用场景有哪些?
//防抖第一次立即执行
function debounceImmediate(f, wait){
let timer;
let flag = true;
return (...args) => {
clearTimeout(timer);
if (flag) {
f(...args);
flag = false;
}
timer = setTimeout(() => {
flag = true;
}, wait);
}
}
//防抖合并实现(通过传参判断是否需要第一次立即执行)
function debounceMerge(f, wait, isImmediate) {
let timer;
let flag = true;
return (...args) => {
clearTimeout(timer);
if (flag) {
flag = false;
isImmediate && f(...args);
}
timer = setTimeout(() => {
!isImmediate && f(...args);
flag = true;
}, wait);
}
}
//节流第一次立即执行
function throttleImmediate(f, wait) {
let timer;
let flag = true;
return (...args) => {
if (timer) return;
if (flag) {
f(...args);
flag = false;
timer = setTimeout(() => {
flag = true;
timer = null;
}, wait);
}
}
}
//节流合并实现(通过传参判断是否需要第一次立即执行)
function throttleMerge(f, wait, isImmediate) {
let timer;
let flag = true;
return (...args) => {
if (timer) return;
if (flag) {
isImmediate && f(...args);
flag = false;
timer = setTimeout(() => {
!isImmediate && f(...args);
flag = true;
timer = null;
}, wait);
}
}
}
2. HTTP缓存
彻底弄懂HTTP缓存机制及原理
3. 浏览器同源策略
浏览器同源政策及其规避方法
跨域资源共享 CORS 详解
4. 前端安全
5. HTTP 2.0有哪些特性
HTTP----HTTP2.0新特性
6. 原型、原型链
一张图搞定JS原型&原型链
7. 闭包
深入理解javascript原型和闭包系列
闭包,看这一篇就够了——带你看透闭包的本质,百发百中
8. 作用域、作用域链
深入理解JavaScript作用域和作用域链
9. JS 继承方式
js继承的6种方式
10. JS 深拷贝、浅拷贝
深拷贝与浅拷贝的区别,实现深拷贝的几种方法
JavaScript 如何完整实现深度Clone对象?
11. JS 对象的遍历方法
js遍历对象的几种方法
12.Promise函数、async/await
Promise对象
简单实现Promise
async/await 原理及执行顺序分析
13. 用 setTimeout 实现 setInterval、clearInterval
如何用setTimeout实现setInterval、clearInterval
14. JS 事件循环机制
15. 八大排序
代码实现
时间复杂度
最好/最坏时间复杂度
空间复杂度
稳定性
16. 用 Promise 函数实现 Ajax 请求
const getJSON = function(url) {
const promise = new Promise(function(resolve, reject) {
const handler = function() {
if (this.readyState !== 4) {
return;
}
if (this.status === 200) {
resolve(this.response);
} else {
reject(new Error(this.statusText()));
}
};
const client = new XMLHttpRequest();
client.open('GET', 'url');
client.onreadystatechange = handler;
client.responseType = "json";
client.setRequestHeader("Accept", "application/json");
client.send();
});
return promise;
}
getJSON("/posts.json").then(function(json) {
console.log('Contents: ' + json);
}, function(error) {
console.error('出错了', error);
});
17. vue3 有哪些特性?
vue3 迁移指南
18. ES6 新增了哪些特性/内容?
ES6 入门教程—阮一峰
19. 你是怎么学习前端的?
20. 什么是“大前端” ?
21. Node.js 有了解过吗?
22. HTTP 和 HTTPS的区别?
23. SSL 和 TSL
24. CSS 水平、垂直居中怎么实现?
25. flex 布局
26. 浏览器从输入一个 url 到页面展示经过了什么?
27. 浏览器渲染过程?
28. BFC、IFC是什么?
29. 有用过 webpack 吗?
30. 离线存储的方式有哪些?
31. JS 数组、字符串有哪些方法和属性?
32. 怎么实现文件上传?
33. 前端性能优化方式有哪些?
34. vue 的双向绑定原理是什么?怎么实现?
35. vue 中父组件、子组件怎么通信?
原文链接:https://blog.csdn.net/weixin_42554695/article/details/115499049
作者:代码搬运工
链接:http://www.qianduanheidong.com/blog/article/58525/09f2438fd6f1f3866d46/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!