Fork me on GitHub

04 2021 档案

摘要:栈的定义:后入先出的数据结构。 定义一个栈构造函数,利用数组做缓存。 function Stack(){ this.dataStore = [] this.top = 0 // 压入一个新元素 this.push = function(element){ this.dataStore[this.to 阅读全文
posted @ 2021-04-29 22:39 我站在山顶上 阅读(247) 评论(0) 推荐(0)
摘要:在各种教材中,数据以及数据类型都是首先要讲的。在我看来数据以及数据类型是对问题的基本建模单元。 前端JavaScript基本数据类型:Undefined、Null、String、Number、Boolean。 然后是复合数据类型:Object。 前端乃至其他语言的数据结构:栈、队列、链表、散列、集合 阅读全文
posted @ 2021-04-28 20:10 我站在山顶上 阅读(84) 评论(0) 推荐(0)
摘要:​Vue的高阶组件在官方文档中并未提及,这个是一个舶来品,是React生态才有的一个概念。 但不妨碍我们使用它。 实际上Vue组件就是一个对象。根据高阶函数的概念 在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数: 接受一个或多个函数作为输入。 输出一个函数 高阶组件也就是返回一个组件(对 阅读全文
posted @ 2021-04-25 13:50 我站在山顶上 阅读(1789) 评论(0) 推荐(0)
摘要:移动端页面随着滑动的dom越来越长,会出现卡顿的现象,进而降低用户体验,于是可视区渲染方案出来。 可视区渲染就像一句话说的:敌不动我动,山不就我我就山。 可视区渲染原理: 1,有个滚动区域,下面的content类,要求overflow:auto,也就是可以使用滚动;在实际项目开发中这个根据可视区窗口 阅读全文
posted @ 2021-04-24 10:52 我站在山顶上 阅读(782) 评论(0) 推荐(0)
摘要:重排一定会产生重绘,重绘发生在元素的可见的外观被改变,但并没有影响到布局的时候。比如,仅修改DOM元素的字体颜色(只有Repaint,因为不需要调整布局)。 从根本上说,因为重排和重绘才实现了页面的状态改变。但重排和重绘是有代价的,作为开发工程师要做的事是尽可能小的代价实现页面dom的改变。 在《高 阅读全文
posted @ 2021-04-22 17:05 我站在山顶上 阅读(177) 评论(0) 推荐(0)
摘要:​如空中楼阁,虽然一再深化对开发的理解,但终究觉得还是差点意思。 今天灵光乍现。 最早从研究生开始我用母题的概念给题目归类,总结题目之间的区别。而实际上母题的概念转化到开发中是不变,而根据母题衍生出的各种题目则是变化。 对,就是不变和变化。 开发的本质也是不变和变化。 对于开发来说不变的是API(开 阅读全文
posted @ 2021-04-21 21:40 我站在山顶上 阅读(82) 评论(0) 推荐(0)
摘要:本文系常见问题总结文章之一,具体归属于常见设计模式。 打算出常见系列,常见设计模式、常见算法、常见数据结构、常见业务场景。 什么场景下适合命令模式? 有时候需要向某些对象发送命令请求,但是并不知道请求的接受者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得请求的发送者和接 阅读全文
posted @ 2021-04-20 17:28 我站在山顶上 阅读(75) 评论(0) 推荐(0)
摘要:在曾探的《Javascript设计模式与开发实践》中,有这样一段话: 设计模式在很多时候其实都体现了语言的不足之处。Peter Norvig 曾说,设计模式是对语言不足的补充,如果使用设计模式,不如去找一门更好的语言。这句话非常正确。 而在我看来,语言未必要封装设计模式,设计模式也不必须封装在语言内 阅读全文
posted @ 2021-04-17 10:38 我站在山顶上 阅读(217) 评论(0) 推荐(0)
摘要:日常的编程方式这个问题很值重新了解一下。 ### 面向过程编程面向过程编程(procedure oriented Programming)(POP) 面向过程编程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 ### 面向对象编程 面向对象编程 阅读全文
posted @ 2021-04-15 23:26 我站在山顶上 阅读(102) 评论(0) 推荐(0)
摘要:​对于单页面应用来说,最理想的情况是每个路由的页面性能都是最佳的。 如果以此为目标,如何实现呢? 全局性方案 减少文件大小,包括js,图片,css等;具体的方法可以采用压缩css、js文件;也可以压缩图片,当然还可以使用雪碧图 采用tree shaking方式进一步减少js文件大小 限制首屏加载资源 阅读全文
posted @ 2021-04-12 23:17 我站在山顶上 阅读(270) 评论(0) 推荐(0)
摘要:用ts开发项目变化还是挺大的 由于 TypeScript 默认并不支持 *.vue 后缀的文件,所以在 vue 项目中引入的时候需要创建一个 vue-shim.d.ts 文件,放在根目录下 declare module '*.vue' { import Vue from 'vue'; export 阅读全文
posted @ 2021-04-10 14:35 我站在山顶上 阅读(622) 评论(0) 推荐(0)
摘要:一些面试官着重看这个人的现在能力,而不是看未来的能力。这无可厚非,但是我也曾面试过,我的方法是既看现在的能力也看未来的能力。 什么是现在的能力,就是对知识的理解和操作能力。这是过去的结果。过去的结果很多时候存在路径依赖性,在一个相对平衡的开发小组里面,当适应了,那么相应的能力浮动就不会很大。而不同公 阅读全文
posted @ 2021-04-09 23:11 我站在山顶上 阅读(309) 评论(0) 推荐(0)
摘要:我现在认为之前之所以对原型链混淆以及莫名其妙根本原因在于我一开始就没有搞清楚到底什么是原型。 之前也看过不少其他人写的关于原型链的解释,但是越看越糊涂。 我现在觉得要想搞清楚这个问题应该从0开始,先从__proto__开始。 看一下下面分析过程 对象数据实际是跟着一个__proto__属性的。而实际 阅读全文
posted @ 2021-04-08 12:31 我站在山顶上 阅读(75) 评论(0) 推荐(0)
摘要:浏览器只有一个线程才能有效的保证处理操作的准确性。 从实际上去说也就是V8引擎的一种机制,实际上是一个永动机机制,也就是一直不停的运行。 代码被分成两种任务形式,:一种是同步任务一种是异步任务 首先执行同步任务,同步任务有人说就是立即执行的任务,这个解释我认可。同步任务在主线程上按先后顺序执行,每个 阅读全文
posted @ 2021-04-06 23:05 我站在山顶上 阅读(84) 评论(0) 推荐(0)
摘要:最近有看到这样一道面试题。 大概意思是一个promise管理组件,所有的对外的请求都走该组件。然后要求该组件对请求进行管理。实现的效果是同一时刻只能有2个请求在进行,不满2个就会发出新的请求。 这道题一开始我的思路是肯定有一个promise的收集器,然后对收集的promise进行管理,一开始肯定要发 阅读全文
posted @ 2021-04-05 14:07 我站在山顶上 阅读(146) 评论(0) 推荐(0)
摘要:无名天地之始,有名万物之母。 有了名就有了区分,本质的区分。 从无到有从0到1,是一种事物发展的形式,而一种事物的发展可以有多个过程。 做开发如是,做前端开发如是。 当需求来了作为开发应该怎么办,应该怎样去更好的为需求服务? 当前需求的分类有以下几种: 一,web端需求 1,pc端和移动端单页面,移 阅读全文
posted @ 2021-04-04 14:23 我站在山顶上 阅读(85) 评论(0) 推荐(0)
摘要:函数科里化是高阶函数,关键在于函数科里化的意义或者用途。 函数科里化有至少两种实现方式,我写两种。一种是将参数拆分开就能求值。 function curry(fn, currArgs) { // 这里的fn就是sum方法 return function () { let args = [].slic 阅读全文
posted @ 2021-04-03 16:02 我站在山顶上 阅读(187) 评论(0) 推荐(0)
摘要:科学是可以证伪的,伪科学则不可以。 有些时候我从别人那里拿到二手知识,有的明确有的不明确。 我在想如果取验证呢,当然可以手动去试验,那么除了手动去试验还有没有别的方法呢,而且认知的根本是什么呢? 我想到了科学可以证伪这句话。我们做开发的,开发是基于数学知识,数学是科学。数学自然是可以证伪的。 所以以 阅读全文
posted @ 2021-04-03 12:44 我站在山顶上 阅读(197) 评论(0) 推荐(0)
摘要:为什么会有vuex? 解决的是单项数据流失效的问题 单项数据流的简介性在多个视图依赖于 同一状态失效的问题 单项数据流来自不同视图的行为需要变更为同一状态的行为 通过定义和隔离状态管理中的各种概念并通过强制规则维持视图和状态间的独立性,我们的代码将会变得更结构化且易维护。 为什么会发生max-age 阅读全文
posted @ 2021-04-01 23:54 我站在山顶上 阅读(32) 评论(0) 推荐(0)