javascript
宁长风
白天coder,晚上reader
展开
-
js右键双击事件
鼠标右键双击事件,手写实现原创 2022-10-26 09:18:26 · 948 阅读 · 1 评论 -
异步调用,async await基本示例及项目中运用
实例:async function asyncCall(){ let a = await interfaceFn(); console.log('这里是同步');}function interfaceFn(){ return new Promise((resolve, reject) => { setTimeout(() => { console.log('这里是异步') resolve()原创 2022-05-31 11:07:07 · 357 阅读 · 0 评论 -
JS获取字符串中某字符出现n次的下标,递归解决;以及获取出现第n次元素后面的字符;
// 需求举例:中国/江苏省/南京市/浦口区弘阳广场*** 获取第三个'/'后面的内容let str = "中国/江苏省/南京市/浦口区弘阳广场***";function interceptStr(str, ele, index) { let num = str.indexOf(ele) + 1; if(index <= 1) { str = str.substring(num); return str }; str = st.原创 2021-09-15 18:31:26 · 740 阅读 · 2 评论 -
JavaScript二十年原著,中文在线,JavaScript: The First 20 Years
JS祖师 - - 史书原著地址中文在线有用点赞收藏呀~原创 2021-07-06 10:31:53 · 257 阅读 · 0 评论 -
前端input,type=“file“,转base64
照片上传一:直接传base64let reader = new FileReader() reader.readAsDataURL(file) // reader.onload = () => { let str = reader.result, // this.iconBase64 = reader.result bs = str.substr(str.indexOf(',')+1); console.log('f原创 2021-06-21 15:47:57 · 316 阅读 · 0 评论 -
记一次工作中使用promise.all
前段时间,一个页面上的数据,需要将调两个接口得到的部分数据,进行相加展示,所以要两个接口都请求完才能处理。准备条件:第一个接口名字:apiOne;第二个接口名字:apiTwo。开始: const D1 = new Promise((resolve, reject) => { apiOne({ id: '0001' }).then(res => { resolve(res.data); // res.data是返回的数据 }) }) const D2原创 2021-03-16 15:56:08 · 96 阅读 · 0 评论 -
用户自定义菜单排序,前端js解决
用户改变序号后,模块名称按照序号重新排列。假设修改第5行序号5为3后,效果应该为思路:序号input失焦事件①当序号小于原数组长度时,剪切改项。插入到要改变的项处,再for循环一次,把索引加一赋给新的序号。②当序号大于等于原数组长度时,剪切该项,直接添加到末尾。if(item.sort < this.labelList.length) { this.labelList.splice(index, 1); this.labelList.splice(Number(item.sort).原创 2021-03-11 14:43:34 · 552 阅读 · 0 评论 -
JS--改变函数中this的指向三种方法
function test(x, y){ console.log(x, y, this)}test()// 直接调用test,很显然this指向windowlet p = new test(3, 5);//new 实例化后:this指向构造函数 3, 5, test(){} // 基础://一:bindtest.bind(test, 33 , 22)();//改变this,bind,生成一个新的函数,且this指向为第一个参数,其余参数为新函数的参数//bind仅改变this,不会原创 2020-12-17 09:44:48 · 309 阅读 · 1 评论 -
原生JS阻止事件冒泡,兼容IE
进用vue写阻止事件冒泡的时候,想了一下用JS怎么写,然后想不起来了,记一下。HTML中:<div onclick="clickOneTime(arguments(0))"></div><script>function clickOneTime(e) { var evt = e || window.event; //IE用cancelBubble=true来阻止而FF下需要用stopPropagation方法 evt.stopPropagation原创 2020-12-07 16:29:17 · 403 阅读 · 0 评论 -
JavaScript——浏览器的重绘与回流(转载红烧金鱼草)
一、浏览器渲染过程? 1. 浏览器把获取到的html代码解析成1个Dom树,html中的每个tag都是Dom树中的1个节点,根节点就是我们常用的document对象 。dom树里面包含了所有的html tag,包括display:none隐藏,还有用JS动态添加的元素等。 2. 浏览器把所有样式(主要包括css和浏览器的样式设置)解析成样式结构体,在解析的过程中会去掉浏览器不能识别的样式,比如IE会去掉-moz开头的样式. 3. dom tree和样式结构体(cssom)结合后构建呈现转载 2020-11-08 13:34:55 · 149 阅读 · 0 评论 -
es6, async + await,异步处理, 使用setTimeout + console.log模拟一下
es6中async + await解决异步问题非常便捷,下面是模拟的代码:function needWait() { return new Promise(resolve => { setTimeout(() => { console.log("假装这里是一个异步程序"); resolve(); }) })};async function test() { await needWait(); console.log("本来我应该先被打印出来原创 2020-10-16 23:50:22 · 657 阅读 · 0 评论 -
“new Date()”ios苹果不兼容,NAN,不仅是“-”的原因,“2020/08/07T03:22:56.000+0000“也不行
后台返了个 “2020-08-07T03:22:56.000+0000”,讲道理, new Date(2020-08-07T03:22:56.000+0000)然后处理一下, 没什么问题。但是ios最后结果是NAN,“-”ios不兼容, 以前遇到过, 也是知道的, 但是.replalce(/-/g, ‘/’)之后, new Date(‘2020/08/07T03:22:56.000+0000’)还是不行, 我好兴(qi)奋(ji)的(bai)呀(huai),百度半天,都是说“-”的原因,都是复读机哟。最原创 2020-08-08 12:15:55 · 606 阅读 · 0 评论