javascript
- mXw ?
这个作者很懒,什么都没留下…
展开
-
qs
qs.stringify()`和JSON.stringify()var a = {name:'hehe',age:10};qs.stringify序列化结果如下name=hehe&age=10而JSON.stringify序列化结果如下:"{"a":"hehe","age":10}"qs.parse()和JSON.parseqs.parse()将URL解析成对象的形式let url = 'method=query_sql_dataset_data&projectId=8原创 2021-01-12 14:44:54 · 216 阅读 · 0 评论 -
微任务与宏任务
执行顺序 34852event loop执行机制每个微任务都跟随上一个宏任务后面执行,当script整体代码执行完毕之后,执行执行后面的微任务,当一个循环结束,再执行下一个宏任务,直至全部执行完毕。执行顺序: 1、script start 2、script end 3、promise1 4、promise2 5、setTimeout例:promise为微任务,1和2为整体代码,当1和2执行完毕之后,执行微任务promise,然后再执行宏任务setTimeout...原创 2021-01-12 14:42:18 · 97 阅读 · 0 评论 -
事件冒泡、事件捕获和事件执行顺序
**早期存在有道云笔记中,没记住原创作者地址,原创作者看到请留言,改成转载**1事件传播——冒泡与捕获 默认情况下,事件使用冒泡事件流,不使用捕获事件流。然而,在Firefox和Safari里,你可以显式的指定使用捕获事件流,方法是在注册事件时传入useCapture参数,将这个参数设为true。概念:事件冒泡:事件最开始由最具体的元素接收(文档层次中嵌套最深的那个节点),然后逐级向上传播最不具体的节点(document)。事件捕获:事件由最不具体的元素接收,最后传播至最具体的元素。<原创 2021-01-08 10:25:55 · 1175 阅读 · 0 评论 -
async await
1. async 和 await 在干什么async 是“异步”的简写,而 await 可以认为是 async wait 的简写。所以应该很好理解 async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。await 只能出现在 async 函数中。如果 await 只能出现在 async 函数中,那这个 async 函数应该怎么调用?如果需要通过 await 来调用一个 async 函数,那这个调用的外面必须得再包一个 async 函数,然后……进入死循环。原创 2021-01-08 10:19:40 · 150 阅读 · 0 评论 -
函数传参html标签转义
转义function HTMLEncode(html) { var temp = document.createElement("div"); (temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html); var output = temp.innerHTML; temp = null; return output; }反转义function HTMLDe原创 2021-01-08 10:16:48 · 102 阅读 · 0 评论 -
数组之间交集、差集、并集、补集
filter取两个数组中相同的值let arr1 = arr.filter((item, i) => arr2.includes(item))原创 2021-01-08 10:09:28 · 156 阅读 · 0 评论 -
修改数据2个为一组
var arr = []; var data = [ { name: 'abc1' }, { name: 'abc2' }, { name: 'abc3' }, { name: 'abc4' }, { name: 'abc5' }, { name: 'abc6' }, { name: 'abc7' }, { name: 'abc8' }, { name: 'abc9' ..原创 2021-01-08 10:06:55 · 43 阅读 · 0 评论 -
可选链操作符
可选链操作符是一个新的js api,它允许读取一个被连接对象的深层次的属性的值而无需明确校验链条上每一个引用的有效性。let arr = res && res.data && res.data.list同上 let arr = res?.data?.listlet arr = res && res.data || [] let arr = res?.res?.data ?? []这个??的意思是当左边的值为null或undefained的时原创 2021-01-08 10:05:33 · 244 阅读 · 0 评论 -
jquery方法传对象报错
案例:js通过拼接字符串的方法传参报错JSON.stringify(limitArr[i]).replace(/"/g, '"')原创 2021-01-07 08:59:47 · 178 阅读 · 0 评论 -
封装深拷贝方法
function copy(obj) { let res = obj instanceof Array ? [] : {}; for (const [k, v] of Object.entries(obj)) { res[k] = typeof v == 'object' ? copy(v) : v; } return res;}原创 2021-01-07 08:51:51 · 198 阅读 · 0 评论 -
获取年月日
原创 2021-01-06 10:27:50 · 58 阅读 · 0 评论 -
对象去null
var arr = [{ a: 1, b: 2, c: null }] arr.map(r => { for (l in r) { if (!r[l]) { r[l] = '' } }; return r })原创 2021-01-06 10:25:39 · 50 阅读 · 0 评论 -
数组排序与flat方法
数组排序arr2 = [13, 24, 51, 3];arr2.sort(compare); // [3, 13, 24, 51]function compare(a,b){ return a-b;}降序function compare(value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0;转载 2021-01-06 10:24:52 · 95 阅读 · 0 评论 -
手机号显示省略号
function starPhone(phoneNum) { let str = String(phoneNum), strLen = str.slice(-8, -4); return str.replace(strLen, "****"); }原创 2021-01-06 10:09:45 · 344 阅读 · 0 评论 -
动态日期
var t = null; t = setTimeout(time, 1000);//开始运行 function time() { // 清除定时器 clearTimeout(t); dt = new Date() var y = dt.getFullYear(); var mt = dt.getMonth() + 1; var d.原创 2021-01-06 10:08:26 · 88 阅读 · 0 评论 -
天/时/分/秒倒计时
var timeout = setInterval(() => { var laterDate = new Date(finishTime).getTime() var nowDate = new Date().getTime() var time = laterDate - nowDate if (time <= 0) { timeShop()原创 2021-01-06 10:07:52 · 65 阅读 · 0 评论 -
监听localStorage变化
<script> var orignalSetItem = localStorage.setItem; localStorage.setItem = function (key, newValue) { var setItemEvent = new Event("setItemEvent"); setItemEvent.key = key; setItemEvent.newValue ...原创 2021-01-06 10:04:45 · 829 阅读 · 1 评论 -
获取浏览器分辨率
function redirectPage() { var wjb51 = screen.width; var hjb51 = screen.height; var navigator =window.navigator.appVersion alert("经系统检测,你的屏幕分辨率为 " + wjb51 + "*" + hjb51 ); alert(navigator,'navigator');} redirectPage()原创 2021-01-06 10:02:28 · 645 阅读 · 0 评论 -
js获取url参数
function urlFn(url, name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var t_len = url.length var len = url.indexOf('?') var para = url.substr(len, t_len) var r = para.substr(1).match(re原创 2021-01-06 10:00:48 · 53 阅读 · 0 评论 -
函数节流和函数防抖
案例:问题原因:input事件每输入一次就会调用一次事件,使用函数防抖可以控制oninput事件的频繁触发函数防抖:function debounce(fn, wait) { var timer = null; return function () { var context = this var args = arguments if (timer) { clearTimeout(timer); timer =原创 2021-01-06 09:55:54 · 55 阅读 · 0 评论