js
小秋的漫漫人生路
笼鸡有食汤锅近,野鹤无粮天地宽
展开
-
axios 配合 Promise 封装请求
export const http = (info) => { let token = sessionStorage.getItem("token") //post请求,设置为 ‘application/json' ,前后端约定。如果是文件上传,需要改为 formData axios.defaults.headers.post['Content-Type'] = 'application/json' // 不公开的请求,需要携带 token 用户验证参数,登陆原创 2020-07-08 18:16:42 · 644 阅读 · 0 评论 -
函数节流
// 节流function throttle(fn,delay = 500) { console.log(delay) let timer = null return function() { if (timer) { return } timer = setTimeout(()=>{ console.log(this) fn.apply(this,argu原创 2020-06-19 17:10:20 · 174 阅读 · 0 评论 -
函数防抖
// 函数防抖let timer = nullinput.addEventListener('keyup',function(){ if (timer) { clearTimeout(timer) } timer = setTimeout(()=>{ console.log(input.value) timer = null },500)})原创 2020-06-19 17:09:45 · 142 阅读 · 0 评论 -
用 promise写一个ajax请求
function http({ url, type, data, dataType }) { return new Promise(function (resolve, reject) { var xhr = window.XMLHttpRequest ? new XMLHttprequest() : new ActiveXObject('Microsoft.XMLHttp'); xhr.onreadystatechange = function () { .原创 2020-06-19 11:40:21 · 280 阅读 · 0 评论 -
手写一个简单的事件绑定函数
function bindEvent(elem,type,selector,fn){ if (fn == null) { fn = selector selector = null } elem.addEventListener(type,event=>{ const target = event.target if (selector) { // 代理绑定 if原创 2020-06-19 09:04:17 · 211 阅读 · 0 评论 -
一次性插入多个节点-考虑性能
const listNode = document.getElementById("list")// 创建一个片段,此时还没有插入到DOM树中const frag = document.createDocumentFragment()// 执行插入for (let x=0; x<10;x++) { const li = document.createElement('li') li.innerHTML = 'List item' + x frag.appendCh.原创 2020-06-17 18:27:27 · 772 阅读 · 0 评论 -
手写一个简易的用 Promise 加载一张图片
function loadImg(src){ return new Promise((resove,reject)=>{ const img = document.createElement('img') img.onload = ()=>{ resove(img) } img.onerror = ()=>{ let err = new Error('图片加载失败').原创 2020-06-17 15:07:15 · 333 阅读 · 0 评论 -
手写一个简易的闭包
闭包的主要表现有两种 ,一个作为 函数返回值,一个作为 参数。作为函数返回值function demo(){ let a = 100 return function(){ console.log(a) }}let a = 200demo()作为参数function fn1(fn){ const a = 100 fn()}const a = 200function fn(){ console.log(a)}fn1(fn)闭包的简单应用原创 2020-06-17 12:57:48 · 4496 阅读 · 0 评论 -
手写一个简单的bind函数
bind 函数 重点是参数的处理Function.prototype.bindcopy = function(){ const args = Array.prototype.slice.call(arguments) const t = args.shift() const self = this return function(){ return self.apply(t,args) }}原创 2020-06-17 12:23:52 · 262 阅读 · 0 评论