自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 JAVA里程碑

构造方法第一句总是:super()来调用父类对应的构造方法,流程就是:先向上追溯到Object,再依次向下执行类的初始化和构造方法,知道当前子类为止。静态初始块调用顺序,和上一样。

2024-02-28 00:39:32 328

原创 设计原则(设计哲学)

10.各部分之和大于整体(小的个体组成大的整体 不是一上来整一个整体 遇到改变 都混在一块 改变就很大 拆分后 解耦后 改变就很小)6.避免强制性用户界面(因为占用内存 且安全性问题 因为入口变多 操作多 就是一种分离 )8.核心系统要小而轻量化 (扩展可以用插件形式 内核是内核 插件是插件 工具是工具)7.每个程序都称为过滤器(1.2不谋而合 就是每个模块是个数据过滤器)2.让每个程序只做好一件事(小的组成一个大的)伴随需求增加,设计的作用才能体现出来(前提)准则:设计原则(哲学)

2023-06-27 18:00:42 127

原创 面向对象(最好理解 最美观 最简洁)

概 念概 念1.类,模板2.对象(可以使用类创建对象 实例化 初始化)三 要 素继承:子类继承父类封装: 数据的权限与保密多态:同一接口不同实现。

2023-06-25 23:18:15 353

原创 html资源提示符

正常dom解析 中遇到script标签 ,会暂停主线程 去下载js,拿到资源后,主线程再执行js。那么主线程在等待网络线程下载这个空闲很浪费。

2023-05-05 10:42:23 779

原创 面向对象的程序设计(js)

都是些老生常淡的话题,有种初学不知曲中意,再学已是曲中人的凄凉之感油然而生,也算是冷饭热嚼,本文内容大部分来源于javascript红宝书第三版。

2023-03-30 14:33:20 372

原创 Object.assign() (最全 最干净 最好用)

2、针对深拷贝,需要使用其他办法,因为 Object.assign()拷贝的是属性值。假如源对象的属性值是一个对象的引用,那么它也只指向那个引用。1、Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象,继承属性和不可枚举属性是不能拷贝的。Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。4、异常会打断后续拷贝任务。3、目标对象自身也会改变。5. ie不兼容此写法。

2023-03-29 11:15:59 401

原创 promise(最全 最干净 最好用)

兄弟们!直接拿下面html浏览器跑起来耍一下吧当你理解了原理之后,你就可以顺利成章了明白一些奇怪的写法的缘由,就知道顺理成章,也避免写法错误造成的bug。

2023-03-28 21:19:08 43

原创 【无标题】

小图片base64编码。bundle加hash。常见loader和plugin。前端为何要进行构建和打包。处理react与vue。

2023-03-28 16:34:13 94

原创 节流(最全 最干净 最好用)

浏览器中比较高频响应,resize/scroll/touchmove 响应函数复杂一些 会跟不上触发频率,便会出现页面卡顿,延迟,假死鞥现象。

2023-03-27 19:47:26 154

原创 防抖函数(最全 最干净 最好理解)

因为事件对象是默认传递的参数,因为call只能传递一个参数,所以我们选择使用 fun.apply(this, args)解决方案: 可以使用 fun.call(this) 来重定向函数中this的指向 【call 传参是单个】1.arguments 作为函数的关键字,它接收的是这个函数传递的所有实参,包括这个事件对象。错误示范:return里面的this 与函数体内的this指向 在不同场景中 指向并不相同。多次操作 只在操作结束后再执行操作函数。1.事件函数里的this才指向box。

2023-03-27 16:21:03 2147 3

原创 性能优化webpack【打包构建优化】

package中的 sideEffects(忽略文件)【css不是es6的模块化方式写的】4.2辅助函数的复用 也是按需引入 (比如类函数的声明 有个辅助检查函数不会复用)bable的modlu配置 需要false 因为也是基于es6的模块化依赖关系。babel可以对转码要求进行设置 比如对市面占有率百分比的浏览器进行转码。被忽略的库不能有import require define的引入。注意bable默认配置的影响【模块化语法的转码 false】上下文未用到的代码(全局变量容易被 sharking)

2023-02-07 17:57:21 652

原创 JavaScript ( JS ) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言

V8 引擎执行 JavaScript 代码的过程更像是编译型和解释型的结合体。那么如何理解以这种方式运行的 JavaScript 语言?现在的 JavaScript 语言,并不是一行一行的解释执行,也不是全部编译后再执行。大概的流程是,先编译当前必须的代码并执行,然后再去编译下一步必须的代码再执行。比如,一个函数是在用户点击某个按钮时才会运行,那么在用户点击按钮之前这个函数就不会被编译执行。所以,现在的 JavaScript 语言就像是不停地重复编译-执行流程的编译型语言。

2023-02-01 14:45:14 777

原创 状态码(快速帮我们定位错误元凶)

其实我们只要先看状态码,先区分是服务端还是客户端(前端)的问题。遇到接口报错,我们一般会花蛮多时间扯皮,

2022-11-08 10:13:22 629

原创 flex博大精深

前言我在长期带项目带人的过程中,发现好多人对flex很陌生,让我有种错觉,flex是很新的技术,后来一baidu,css3 2009年就发布了Flexbox layout。十来年前沿用至今的技术,我觉得不会这个的前端不是一个好厨子。flex起步Flexbox有两套属性,一套针对可伸缩容器(flexible container),一套针对容器的直接子元素,或可伸缩项(flexible item)。flex-direction:指定主轴方向是水平还是垂直flex-wrap:指定可伸缩项是否折行。

2022-09-07 19:46:42 505

原创 js设计模式(观察者模式与发布订阅模式区别)[四星推荐]

观察者 发布订阅

2022-08-18 15:48:45 178

原创 try-catch

js是运行时报错 为什么请求接口报错后 页面没有阻塞 那就是因为用了 try catch错误捕获语句。不能捕获: 跨域错误 异步错误。1.2 自定义错误类型。1.1 原生的错误类型。

2022-08-17 14:01:52 313

原创 js中的sort排序

Array.prototype.sort()

2022-08-15 14:43:52 1233

原创 call apply bind

相同点:都可以改变函数内部的this指向区别点:1.call和apply会调用函数,并且改变函数内部this指向2.call和apply传递的参数不一样,call传递参数aru1,aru2...形式 apply必须是数组形式3.bind不会调用函数,可以改变函数内部this指向主要应用场景1.call经常做继承2.apply经常跟数组有关系,比如借助于数学对象实现数组最大值最小值3.bind不调用函数,但是还想改变this指向,比如改变定时器内部的this指向实现继承apply的应用。...

2022-08-10 14:44:42 76

原创 VUE3 常用内置函数

vue3.0

2022-07-25 14:18:52 1322

原创 typescript详解

还是上次面试失利后,1.感觉自己只是单纯的会用某种技术不会表达含义,资方就认为你不会。2.专业一点的产品,还是会选择ts。一.类型注解TypeScript里的类型注解是一种轻量级的为函数或变量添加约束的方式1.定义数组let list : number[] = [1,2,3];//orlet list : Array<number> = [1,2,3];2.定义元组类型(元组类型表示允许数组内的类型各不相同,但是在赋值时需要按照类型顺序来赋值)let li

2022-01-11 15:24:06 465 2

原创 常用网站+

版本号svg制作Shields.io: Quality metadata badges for open source projects

2022-01-06 16:25:53 56

原创 面经(年薪50w)

面经

2022-01-06 09:28:56 56

原创 2021-08-03

#v-for 中用key原理:必须要用key 因为diff算法中根据tag和key来判断是不是同一个samenode效果:减少渲染次数 提升渲染性能(优化diff算法)#单组件生命周期()图#组件通讯(常见)props $emit自定义事件 event.$onevent.$offevent.$emitvuex@组件渲染与更新的过程(图)#组件的data为什么是函数?.vue编译后实际上是一个class 使用时候只是实例 如果不是函数的话 大家就共用data了...

2021-08-03 18:58:52 69

原创 绝招-路由原理

稍微复杂一点的SPA 都需要路由前端路由模式: hash H5 history(需要配置)hash模式特点:1.根据hash的变化触发路由的变化即网页跳转 触发前进后退2.不会刷新页面。SPA必须的特点3.hash永远不会提交到serve端口(完全前端控制)window.hashChange(监听)js实现H5 history路由用url规范的路由 但跳转时不刷新页面(SPA必须要)history.pushState函数跳转【路由跳转】window可以监听前进后退w.

2021-08-03 10:35:04 62

原创 绝招----Vue原理(2)

diff算法 vdom diff树diff的时间复杂度是 O(n^3) 不可用的复杂度1.遍历tree12.遍历tree23.排序结论 1000个节点 要计算1亿次冒泡排序时间复杂度也是 n^2 基本也是不可用vdom diff算法优化后的时间复杂度就是 O(n)【并不是百分之百优化】1.只比较同一层级 不跨级比较2.当key或者tag不等 则直接删掉重建 不再深度比较3.tag和key两者都相同 认为是相同节点 (需要深度比较 oldNode和newNode的tex..

2021-08-02 11:05:32 89

原创 绝招----Vue原理

造轮子:有钱有资源,业务定制,技术KPI(提升开发业务效率/业务定制).考察重点,而不是细节。 2/8原则。和使用相关联的原理,例如vdom/模板渲染(更好工作产出)热门技术深度? 整体流程全面(!!!)一: 组件化二:响应式三: vdom diff (热门技术) v-for中为什么要用key?四:模板编译五:渲染过程(流程全面度) 描述组件渲染和更新的过程? 六: 前端路由一:组件化基础()传统的组件是静态渲染,更新要依赖操作DOM (jquery...

2021-08-01 20:54:31 88

原创 绝招 之 闭包

概括: 作用域应用的特殊情况1.函数作为参数被传递2.函数作为返回值被返回总结:函数定义的地方和函数执行的地方不一样// 函数作为返回值function create() { let shan = 100 return function () { console.log(shan) }}shan = 200const fn = create()fn() // 100// 函数作为参数被传递function print(fn) { sha

2021-08-01 09:32:38 93 1

原创 我说这个好看没人反对吧之按钮动画

<!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-scale=1.0"> <title>D..

2021-07-28 11:03:09 50

原创 map数据类型

let length = […map.values()] //map类型转化为数组

2020-03-27 17:17:22 1239

原创 Data总结

getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数var d = new Date();var n = d.getTime();//一长串数字

2020-03-25 00:01:38 85

原创 变量对象/闭包/this

//后台每个执行环境都有一个表示变量的对象—变量对象//例如compare()函数调用//compare的执行环境而言,其作用域链包含两个变量对象本地活动对象全局活动对象全局变量对象始终存在,compare()函数只在函数执行过程中存在作用域链:一个指向变量对象的指针列表,只引用定义:闭包有权访问另一个函数作用域中的变量的函数//内部定义。然后返回test = { a:"...

2020-03-24 23:58:44 121

原创 XML

XML定义:可扩展标记语言作用:用来储存和传输数据,焦点是数据的内容HTML作用:用来显示数据,焦点是数据的外观扩展:XML就是一个比较简单的纯文本数据库,方便跨平台调用本身是一种格式规范,包含数据以及数据说明的文本格式规范数据都是一样的,只是格式不同优点:格式统一符合标准,便于跨平台远程交互与数据共享缺点:文件大,格式复杂,传输占带宽...

2020-03-24 23:52:29 83

原创 算法复杂度

程序争取运行时间,运行空间,达到预期效果实际应用中,还涉及相当大量的数据处理,随着数据规模的增大,基于不同算法的程序在处理同一问题所需时间是不同的所以算法复杂度的分析就很重要...

2020-03-24 23:51:08 65

原创 异步深度

javascript是一门单线程语言Event Loop是javascript的执行机制**为什么要用异步?**由于js是单线程的。只能在js引擎的主线程上运行。所以js代码只能一行一行执行。不能同一时间执行多个js代码任务。这导致如果有一段耗时长的计算活着ajax请求。如果没有异步,就会产生用户等待时间长。这个时候由于任务没有完成,用户其他操作都会没有响应常见的异步模式回调函...

2020-03-24 23:50:11 136

原创 blocking(非阻塞)回调函数

异步回调函数不会造成阻塞function loop() {setTimeout(loop, 0)}loop死循环while(true)

2020-03-24 23:45:15 303

原创 面向对象 / MVC

**MVC模式 : 是一种分层思想(软件设计典范)**M-model 模型层 :主要负责业务代码和数据V-view 视图层 : 主要负责展现展示C-controller 控制层:负责分发请求返回数据面向对象: java的设计思想 java语言里一切皆对象面向对象的三个基本特征:封装 继承 多态作用:专人分工负责model细化问题,步步解决...

2020-03-24 23:43:25 150

原创 函数式和面向对象编程有什么区别?

表格左列 Int, Add, Negate 是三个变式 (Variant),eval, toString, hasZero 是三种操作,这里要做的是填满这个表格,分别实现三个变式的三种操作。函数式编程是写三个函数代表三个方法。然后数据作为参数传人。面向对象编程是数据是主体,然后每个主体上绑定三个方法函数式编程式纵向的填满了上面的表格面向对象编程是横向的填满了上的表格函数式编程 和 面向...

2020-03-24 23:40:11 443

原创 teminal / console / shell

console从应用程序角度看的(控制台是管理员用的,唯一的)teminal从用户角度看的(终端是用户用的)应用程序与console交互用户与teminal交互teminal可以不存在teminal就像显示器,打印机,摄像头。 一台主机可以有很多个终端但是在主机没有启动完成之前,终端是不能连接到主机的。为了记录主机的开机过程的日志,也方便主机故障进行检修,多了一个叫做控制台conso...

2020-03-24 22:31:30 148

原创 二进制,十进制,十六进制相互转换//待补充

数字的0次方等于1来源来源2来源3

2020-03-24 22:25:39 111

原创 CSS传数据套路

<input type=hidden> 那么该标签就不会显示 但是我们可以用这个标签储存数据这是一个利用标签元素隐藏

2020-03-23 17:43:18 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除