js相关学习
js相关学习
Forina_Han
这个作者很懒,什么都没留下…
展开
-
请求图片列表,并发请求限制在3个以内
promise45道面试题promise的题目对于深刻理解事件队列,异步调用,有非常大的帮助。记录下链接中以自己的方式处理的8-3问题(即题目所示),并思考是否有更优解法。function loadImage(url) { return new Promise((res, rej) => { let img = new Image(); img.onload = function () { console.log('complete原创 2021-09-09 15:46:33 · 224 阅读 · 0 评论 -
vue响应式原理理解(data,computed,watch)
摘要双向绑定之前写过一次了。本文从data,watch,comuted的实现原理出发,并根据自己的理解进行了总结。先贴个大佬文章链接:实现一个最精简的响应式系统来学习Vue的data、computed、watch源码讲的非常清晰,让我对响应式有了更深刻更清晰的理解。vue2响应式原理解析data的响应vue2中的简单而言就是object.defineProperty劫持get和set,对于数组直接赋值等操作不能实现响应式,对于data中新增的属性也不支持响应,必须用vue.$set设置。vu原创 2021-08-29 19:45:08 · 855 阅读 · 0 评论 -
lazyMan:事件队列结合链式调用
参考资料:面试题-lazyMan实现非常有意思的一道链式调用。参考资料中使用async和await语法糖完成,更加简介。此处笔者使用promise的写法。class _Lazyman { constructor(name) { this.taskQue = []; // 储存任务队列 this.timer = null; } run() {原创 2021-08-13 18:13:27 · 120 阅读 · 0 评论 -
vuex四属性手写(SGMA)
注释写在源代码里了。参考资料:从0到1手写一个vuex手写Vuex核心原理// https://juejin.cn/post/6844904066246508551 从0到1手写一个vuex// https://juejin.cn/post/6855474001838342151 手写Vuex核心原理/* - src/store/index.js中引入vuex。 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vue原创 2021-08-11 23:25:26 · 95 阅读 · 0 评论 -
js私有变量设置与部分内存泄露处理(weakmap相关)
红宝书中weakmap一节提及函数私有的操作,使用了闭包和weakmap实现。let wm = new WeakMap(); class User { constructor(id) { this.idProperty = Symbol("id"); this.setID(id); } setID(value) { let that = wm.get(this) || {}; // {原创 2021-08-10 23:11:25 · 191 阅读 · 0 评论 -
练习部分手写题(call/apply/bind)
做个总结贴。call/apply/bind Function.prototype.apply = function (obj, args) { // 参数处理 if (!obj) obj = window; else obj = Object(obj); args = Array.from(args); // 绑定this const test原创 2021-08-09 23:18:44 · 106 阅读 · 0 评论 -
promise.all && promise.race
promise.all Promise.prototype.all = function (...iterators) { let res = []; let arr = Array.from(iterators); // 可迭代对象转化 return new Promise((resolve, reject) => { arr.forEach((v, i) => {原创 2021-08-06 23:51:12 · 110 阅读 · 0 评论 -
关于双向绑定-2
完善了一下compile部分,还是有问题。在此简要记录下。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scal原创 2021-08-06 18:38:13 · 60 阅读 · 0 评论 -
关于双向绑定
参考如何理解vue数据双向绑定原理打在开头。参考大佬的理解自己写了一遍加了点注释而已。做个笔记记录。关于compile的部分没写。// Observer 监听器对象,监听对象上的属性是否发生了改变 class Observer { // 观察data对象上属性的变化,一旦变化,通知Dep constructor(data) { this.data = data; //维护data对象原创 2021-08-05 23:34:58 · 95 阅读 · 0 评论 -
关于面试题之js变量作用域与提升
简介这段时间一直在准备秋招,在这个过程中学习了非常多知识,如果不整理下来的话未免太过零散,于是笔者决定做个简单的面试相关知识点整理。原理啥的就不细写,有非常多大佬的文章写到了,此处主要是对部分题目的解析。涉及变量提升与函数提升,变量作用域。例题1.关于变量的作用域 // 会输出什么 ? let x = 5; function fn(x) { // var x; //(1) // var x = 10;原创 2021-08-04 11:05:54 · 148 阅读 · 0 评论