js
海带先森
做前端有几年了,发现有些问题是重复遇到的,有些问题不值得耗费精力去趟一遍,用文档的方式记录这些问题,有参照。
“我看得比别人远是因为我站在巨人的肩膀上”——牛顿。
知识就应该免费分享的。
你必须穷尽一生磨练技能
展开
-
判断是否为数组的方法
判断是否为数组的方法原创 2023-08-18 14:15:01 · 124 阅读 · 0 评论 -
有用的js技巧
有用的js技巧转载 2022-11-16 11:07:38 · 60 阅读 · 0 评论 -
JS 批量删除指定索引的数组元素
let aa = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]function del(p1, p2) { let arr = []; // splice会改变原数组 所以占位 立一个要删除标识 // 占位 p2.forEach(item => { p1.splice(item, 1, "A") }) //过滤 arr = p1.filter(item => item != "A"); return arr;}console.log原创 2021-04-28 15:38:35 · 1801 阅读 · 0 评论 -
call apply bind 改变this 指向问题
call方法 function info(name, age) { this.name = name; this.age = age; } function people(name, age, work) { info.call(this, name, age); console.log("他叫" + this.name + "," + this.age + "岁,职业是" + work) } people("Li", 21, "IT");app.原创 2020-07-02 14:15:59 · 254 阅读 · 0 评论 -
js原生自定义事件
html<button id="btn">按钮</button><div id="m"></div><div id="n"></div>Event 无参数传递 let btn = document.getElementById("btn"); let m = document.getElementById("m"); let n = document.getElementBy原创 2020-07-02 13:37:16 · 406 阅读 · 0 评论 -
函数加new与不加new区别
没有设置返回值function fruit(type) { this.type = type; console.log("this====", this);}let fruit1 = new fruit("apple"); // fruit {type: "apple"}let fruit2 = fruit("apple"); //windowconsole.log('fruit1', fruit1) //fruit {type: "apple"}console.log('.原创 2020-07-02 11:42:26 · 347 阅读 · 0 评论 -
数组简单递归
数组简单递归var data1 = [{ "uid_step": "1", "step_to": [{ "uid_step": "2", "step_to": [{ "uid_step": "6", "step_to": null }] }, { "uid_step": "3",原创 2020-06-16 15:59:13 · 270 阅读 · 0 评论 -
异步变同步
promise.alllet behind = (time) => { return new Promise((resolve, reject) => { setTimeout(() => { console.log( `${time}毫秒后` ) resolve( `${time}毫秒后` ) }, time) })}let p2 = behind(3000);let p1 = .原创 2020-06-11 15:25:35 · 892 阅读 · 2 评论 -
js 取数组一个元素 与剩余的每个元素作比较
let arr1 = [1, 2, 3, 4, 2]; for (let i = 0; i < arr1.length; i++) { let arr2 = [...arr1]; arr2.splice(i, 1); test(arr1[i], arr2); } function test(ele, arr) { for (let i = 0; i < arr.length; i++) { ...原创 2020-06-10 17:45:39 · 2140 阅读 · 0 评论 -
bind
// 分析:这里的bind方法会把它的第一个实参绑定给f函数体内的this,所以里的this即指向{x:1}对象;// 从第二个参数起,会依次传递给原始函数,这里的第二个参数2即是f函数的y参数;// 最后调用m(3)的时候,这里的3便是最后一个参数z了,所以执行结果为1+2+3=6// 分步处理参数的过程其实是一个典型的函数柯里化的过程(Curry) function f(y,z){...转载 2019-10-31 10:54:19 · 118 阅读 · 0 评论