前端
WenYuShuang
这个作者很懒,什么都没留下…
展开
-
关于时间复杂度很好的一篇文章收录
时间复杂度转载 2021-03-18 17:32:05 · 88 阅读 · 0 评论 -
webpack
Entry: 入口文件Resolve:配置寻找模块的规则Module: 配置处理模块的规则Output:输出文件Plugins:配置扩展插件DevServer: 配置dev-server其他:Entrycontext:path.resolve(__dirname, ‘app’) //设定根目录 绝对路径命令行 webpack --context可选择的 type: String...原创 2020-03-21 15:22:46 · 145 阅读 · 0 评论 -
性能优化 ---- 页面渲染 重绘 回流
页面呈现流程: (代码怎么显示到电脑上)参考: 高性能WEB开发:深入理解页面呈现、重绘、回流浏览器解析html生成Dom数,根节点一般为document对象,里面包含所有的html标签 文本 注释 包括display: none隐藏以及js动态添加的元素浏览器把所有的样式解析成样式结构体cssomdom数和css结构体 构建 渲染书(render tree)能识别样式 每个节点都有自己...原创 2020-03-20 23:56:34 · 208 阅读 · 0 评论 -
js方法实现 --- bind
函数绑定bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。var slice = Array.prototype.slice;Function.prototype.bind = function() { var thatFunc = this, thatArg = ...原创 2020-03-20 17:27:55 · 68 阅读 · 0 评论 -
JS常见方法--- Object.create
Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__(from MDN)const person = { isHuman: false, printIntroduction: function () { console.log(`My name is ${this.name}. Am I human? ${this.isHum...原创 2020-03-20 16:29:29 · 164 阅读 · 0 评论 -
js方法实现 ---- new
newfunction _new() { let args = [].slice.call(arguments) let constructor = [].shift.call(args) // Object.create()返回一个新对象,这个对象的构造函数的原型指向Foo let obj = Object.create(constructor.prototype) ...原创 2020-03-20 16:17:44 · 156 阅读 · 0 评论 -
设计模式 ---- 发布订阅
什么是发布订阅模式参考 Javascript中理解发布–订阅模式发布订阅模式 是观察者模式的一种变形,定义了对象间一对多的关系, 让多个订阅者同时监听一个主题对象(发布者),当一个对象发生变化时, 所有依赖他的对象都得到通知 。应用场景可以广泛应用异步编程,可以替代回到函数一个对象不再显式的调用另一个对象的接口特点:创建订阅者需要消耗一定的时间和内存虽然弱化对象之前的链接,过...原创 2020-03-20 13:56:31 · 85 阅读 · 0 评论 -
js常见方法 --- 斐波那契数列
斐波那契数列常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。首先 我们理解斐波那契数列的概念:我们先从一个常见的爬楼梯的问题入手,加入我要爬一节楼梯,每次只能爬一台阶...原创 2020-03-20 12:01:43 · 545 阅读 · 0 评论 -
JS常见方法 --- 防抖
防抖: 一般用在搜索框搜索 , 一段时间内只执行最后一次即可,他的应用也是一个定时器的应用function debounce (fn, delay = 300) { let timer = null return (...args) => { clearTimeOut(timer) timer = setTimeOut(() => { fn.apply(thi...原创 2020-03-20 11:37:14 · 162 阅读 · 0 评论 -
JS常见方法 ----- 函数节流
防抖和节流节流 就是 保证在一段时间内只执行一次核心代码(比如我连续的进行一些dom操作可能会会导致浏览器挂起)背后的思想:某些代码不可以在没有间断的情况下连续重复执行。第一次调用函数,创建一个定时器在指定时间后执行,第二次调用函数的时候,会清除定时器并创建另一个定时器。 目的是只有在执行函数的操作请求 在定制了一段时间后再请求。这是js高级程序设计的一段代码function throt...原创 2020-03-20 11:31:12 · 165 阅读 · 0 评论 -
js常见方法实现 ----数组扁平化
数组扁平化Array.prototype.myflat = function (deep = 1) { return [].concat(...this.map(v => { return Array.isArray(v) && deep > 1 ? v.myflat(deep - 1) : v }));};Array.prototype.myf...原创 2020-03-19 16:12:06 · 133 阅读 · 0 评论 -
js 常见方法实现----函数柯里化实现
函数柯里化通用实现function curry(fn, ...args) { if (args.length >= fn.length) return fn(...args); return function (...args2) { return curry(fn, ...args, ...args2); }}概念(wiki): curring 是把接受多个...原创 2020-03-19 12:15:23 · 728 阅读 · 0 评论 -
从对象的理解到原型链继承
拿起我前端必备的经久耐用的javascript高级程序 再认真的理解一次原型链以及面向对象编程的基础知识 ,毕竟现在好多企业的招聘要求上 深深的写着 熟悉面向对象编程呢 会用和完全融会贯通是有区别的 好好看看基础的概念理解;理解对象1. 创建自定义对象// Object构造函数var person = new Object()person.name = 'Jamie'person.ag...原创 2020-03-12 17:04:49 · 139 阅读 · 0 评论 -
理解call和apply
先占个地方:原创 2020-03-12 17:05:08 · 186 阅读 · 0 评论 -
vue源码阅读记录---rollup配置文件细读
在vue源码的script/script.js 定义了rollup打包的配置文件 :1 这一部分引入了一些依赖const path = require('path') // path 模块提供了一些用于处理文件路径的小工具const buble = require('rollup-plugin-buble') //rollup.js打包的过程中进行代码编译,将ES6+代码编译成ES2...原创 2019-04-19 18:58:13 · 543 阅读 · 0 评论 -
vue源码阅读记录(一)
vue源码目录结构—了解每个文件的作用是什么,Vue 是如何规划目录的等等。Vue技术内幕├── scripts ------------------------------- 构建相关的文件,一般情况下我们不需要动│ ├── git-hooks ------------------------- 存放git钩子的目录│ ├── alias.js -----------------...原创 2019-04-19 17:09:26 · 811 阅读 · 0 评论 -
我眼里的js原型链(学习笔记 )
申明在js中都是对象 , Number是 String是 Boolean也是 Function是 Function的prototype也是 对象都具有 proto 属性Function 这个对象有它特有的 原型属性 即 prototype 这是属性是一个指针,指向一个对象 (包含所有实例共享的属性和方法 叫做原型对象) 原型对象有一个属性叫做 construcor 这个只会原构造函数...原创 2019-03-07 11:00:18 · 184 阅读 · 0 评论