随笔分类 -  js

1 2 下一页

proxy与defineproperty
摘要:proxy与defineproperty区别 1.defineproperty是属性劫持,而proxy针对是对象代理 2.defineproperty需要循环遍历对象,消化性能,而proxy不用(仅针对vue情况下多对象复杂情况,正常情况下defineproperty性能比proxy好) 3.def 阅读全文

posted @ 2024-03-31 18:07 sss大辉 阅读(293) 评论(0) 推荐(0) 编辑

柯里化、组合、管道
摘要:// 柯里化是把一个多参数函数转化成一个嵌套的一元函数的过程 function currying (fn) { let _args = [], max = fn.length let closure = function (...args) { // 先把参数加进去 _args.push(...ar 阅读全文

posted @ 2024-03-29 00:02 sss大辉 阅读(21) 评论(0) 推荐(0) 编辑

Map, Set, Proxy, Reflect
摘要:Map Map是一种用于存储键值对的集合,并且能够记住键的原始插入顺序。 其中键和值可以是任意类型的数据。 let myMap = new Map() myMap.set('name', 'wendZzoo') myMap.set('age', 18) myMap.get('name') myMap 阅读全文

posted @ 2023-11-17 11:09 sss大辉 阅读(34) 评论(0) 推荐(0) 编辑

blob/file和object url 和canvas
摘要:Blob/File Blob 对象表示一个不可变、原始数据的类文件对象。 const aBlob = new Blob( array, options ); File 对象是特殊类型的 Blob,且可以用在任意的 Blob 类型的 context 中。 Blob() 构造函数返回一个新的 Blob  阅读全文

posted @ 2023-11-14 16:41 sss大辉 阅读(73) 评论(0) 推荐(0) 编辑

模块化 commonJS-AMD-ES6
摘要:commonJS(用于服务端) 1.加载方式是同步方式(因为commonJS是从服务端的模块化来的) 2.若模块过大,对于客户端来说,需要通过网络来读取(没那么快),造成白屏时间过长 (对于服务端来说,因为放在本地的,读取时间就是硬盘读取时间,很快) 3.运行时加载 var math = requi 阅读全文

posted @ 2022-03-15 10:33 sss大辉 阅读(43) 评论(0) 推荐(0) 编辑

可选链操作符(?.)
摘要:在取深层对象的时候,往往会因为后端,字段变化,而没有及时通知前端而报错,导致代码卡住 就要多写很多个if判断是否为空 方法:可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。 ?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(nul 阅读全文

posted @ 2022-03-07 17:34 sss大辉 阅读(513) 评论(0) 推荐(0) 编辑

虚拟dom与diff算法
摘要:1.虚拟dom dom就是html文件里内容,一个页面由多个dom组成 <ul class="lists"> <li class="item">li1</li> <li class="item">li2</li> </ul> 而对应的虚拟dom是 tag: 'ul', attrs: { classN 阅读全文

posted @ 2021-12-16 14:57 sss大辉 阅读(124) 评论(0) 推荐(0) 编辑

循环请求接口,统一处理
摘要:在实际开发中,碰到参数不同,接口相同,需要发送多个请求拿到数据后统一做处理的情况 async login() { const datas = ["小明", "小红", "小李"]; // 循环体 const promise = datas.map(i => { const url = "http:/ 阅读全文

posted @ 2021-09-15 10:09 sss大辉 阅读(466) 评论(0) 推荐(0) 编辑

多个url文件下载
摘要:一般来说,url方式下载文件用window.location.href即可。 但是有多个,循环下载的时候,如: var files = []; files.push('mysite.com/file1.txt'); files.push('mysite.com/file2.txt'); files. 阅读全文

posted @ 2021-09-15 10:05 sss大辉 阅读(511) 评论(0) 推荐(0) 编辑

扁平数据结构转Tree
摘要:输入数据: let arr = [ {id: 1, name: '部门1', pid: 0}, {id: 2, name: '部门2', pid: 1}, {id: 3, name: '部门3', pid: 1}, {id: 4, name: '部门4', pid: 3}, {id: 5, name 阅读全文

posted @ 2021-09-01 10:25 sss大辉 阅读(60) 评论(0) 推荐(0) 编辑

es6 解构赋值
摘要:var a, b, rest; [a, b] = [10, 20]; console.log(a); // 10 console.log(b); // 20 [a, b, ...rest] = [10, 20, 30, 40, 50]; console.log(a); // 10 console.l 阅读全文

posted @ 2021-07-25 17:38 sss大辉 阅读(39) 评论(0) 推荐(0) 编辑

js继承
摘要:1.原型链通过子代的原型去new 祖先的构造函数。去继承。 优点: 无 缺点: 创建子类实例时,不能向父类的构造函数中传递参数 父类中所有引用类型的属性会被所有子类实例共享,也就说一个子类实例修改了父类中的某个引用类型的属性时,其他子类实例也会受到影响 例子: a.pototype=new b(); 阅读全文

posted @ 2021-02-05 18:40 sss大辉 阅读(70) 评论(0) 推荐(0) 编辑

闭包
摘要:了解闭包(函数的函数)的肯定知道,输出的是10个10,但是你要具体解释呢? function test() { var arr=[]; for(var i=0;i<10;i++){ arr[i]=function () { console.log(i); } } return arr; } var 阅读全文

posted @ 2021-02-03 13:44 sss大辉 阅读(95) 评论(0) 推荐(0) 编辑

逗号运算符
摘要:var num=(1,2); console.log(num); // 2 var fn=( function test1() { return '1'; }, function test2() { return '2'; } )() console.log(typeof(fn)); // stri 阅读全文

posted @ 2021-02-03 11:51 sss大辉 阅读(104) 评论(0) 推荐(0) 编辑

立即执行函数(IIFE)
摘要:目的:自动执行,执行完之后立即释放; 立即执行函数 --> 初始化函数 可以起到隔离变量的作用 写法(两种写法,效果一样): 1.(function() { })(); 2.(function() { }()) 传参: (function(a,b) { console.log(a); // 1 co 阅读全文

posted @ 2021-02-02 13:49 sss大辉 阅读(230) 评论(0) 推荐(0) 编辑

作用域
摘要:scope 1.函数创建时,生成的一个js内部隐式属性; 2.函数存储作用域链的容器; AO/GO AO:函数的执行期上下文 GO:全局的执行期上下文 函数执行完成后,AO是要销毁的;AO是一个即使存储容器。 function a(){ function b(){ function c(){} c( 阅读全文

posted @ 2021-02-01 14:36 sss大辉 阅读(73) 评论(0) 推荐(0) 编辑

重写数组拓展方法
摘要:forEach Array.prototype.myforEach = function (fn) { var arr = this, length = arr.length, newThis = arguments[1] || global; for (var index = 0; index < 阅读全文

posted @ 2021-01-30 11:12 sss大辉 阅读(78) 评论(0) 推荐(0) 编辑

数组方法
摘要:ES3的数组方法 join(); 目的:将数组转化为字符串. 参数:无or可传一个参数(传超过1个的参数,默认取第一个参数), 参数为字符或字符串,参数将在数组的每个元素的间隔插入。PS: 参数无的时候,数组元素间隔为 ','. 是否改变原数组: 不改变原数组, 返回一个新的字符串. 逆向操作(字符 阅读全文

posted @ 2021-01-30 10:55 sss大辉 阅读(77) 评论(0) 推荐(0) 编辑

手写代码
摘要:1.new的实现 a.能够访问构造函数的属性 b.能访问函数函数的原型的属性 function Person(name) { this.name = name } Person.prototype.eat = function () { console.log('Eatting') } functi 阅读全文

posted @ 2021-01-21 16:49 sss大辉 阅读(165) 评论(0) 推荐(0) 编辑

js函数的定义
摘要:1.函数声明 function print(msg){ console.log(msg); }print(1); 被声明的函数不会直接执行。 它们被“保存供稍后使用”,将在稍后执行,当它们被调用时。 2.函数表达式 var x = function (a, b) {return a * b}; va 阅读全文

posted @ 2020-12-29 11:01 sss大辉 阅读(233) 评论(0) 推荐(0) 编辑

1 2 下一页
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示