
js
文章平均质量分 85
SCE林木夕
一只野蛮生长的程序员
展开
-
用TS爆改祖传代码
在现代软件开发中,随着的流行,许多开发者纷纷将其应用于他们的项目中,以获得更好的类型安全和更清晰的代码结构。然而,对于那些已经有了一套传统的代码库,想要迁移到TypeScript并不总是一件容易的事情。在这篇文章中,我们将探讨如何使用 TS 爆改祖传代码,重点介绍利用YAPI生成TypeScript类型文件的方法。原创 2024-02-28 10:41:05 · 970 阅读 · 0 评论 -
性能优化——canvas 加载海量图
由于本次优化时间较短且中途方案有所改动,所以有很多待优化的点,不过就现在画板列表的性能表现来看已经流畅了许多,我们的目的已经达到了。原创 2024-02-23 11:24:55 · 2204 阅读 · 0 评论 -
小程序性能优化
经过此次对小程序的优化,之前在[We分析](https://wedata.weixin.qq.com/mp2/login)平台上看到的页面,已经没有他们的身影,至此优化结束,所以当各位遇到小程序性能问题时,可以按照以上的流程走一遍。原创 2024-02-22 17:56:52 · 2049 阅读 · 0 评论 -
低代码平台智能化
为提升人效,我们组自研了一个低代码平台,说是自研但其实还是amis为核心的低代码平台,众所周知,低代码平台使用起来都会有一定的学习成本,尤其是在用户体量上来之后,经常会有人来问我如何使用或者让我答疑等等,咱也不是没文档,但是用低代码的各类人群都有,比如产品测试等。这类人群基础薄弱,根本不想看文档,他们就想很方便快捷的弄出来一个页面。因此,我们推出了智能化低代码计划。经过此次迭代,不仅节省了我个人的时间,而且提升了低代码平台的易用性,让更多人参与的低代码又往前迈进了一步。原创 2024-02-22 17:53:01 · 1289 阅读 · 1 评论 -
lowCode与D2C
低代码与D2C之间的联系与,具体流程和实现的分析原创 2022-07-22 19:13:50 · 883 阅读 · 3 评论 -
vue + ts 打包发布至npm/yarn私服
背景前两天突然接到任务,说:‘玉玺啊,你加入到xxx的开发中区,先完成一个打包发布并配合xx老师联调一下’,我说好的,但是~问题来了,此前我的代码并没有写过类似的打包的配置,当天下午就是两眼一抹黑,看了一下午,尝试了许多种解决方案,但是都没能解决。最后到了晚上,我突然想起公司的其他项目也有需要打包发布的,我立马去查看,欸!!经过不断的尝试,还是写出来了。方案一使用typescript的原生打包命令tsc,当然使用这个命令的前提是执行npm install typescript [-g]这条命令下去下载原创 2021-07-17 15:32:03 · 1564 阅读 · 4 评论 -
js渲染10万数据列表,不阻塞UI
前言最近公司项目快结项了,但是我发现公司的每个页面打开都比较卡,究其原因数据量大,请求多,渲染慢。加之面试的时候也遇到过此类问题,那么今天就来尝试去实现一下。一、整理思路首先我们要知道js处理大量数据并没有花费多长时间。耗时最长的是渲染dom元素。一次加载完需要耗费大量时间,所以我们可以把数据切割成一个个小块。每次渲染一小块就能够将dom渲染出来了。二、代码实现<ul></ul>// 第一种实现方式const $UL = document.querySelector(原创 2021-01-26 17:10:54 · 5126 阅读 · 11 评论 -
koa2 源码解读
前言自从在简历上写了使用过nodejs的koa框架起,我被面试官问起node和koa的次数呈指数上涨,为了防止一问三不知的情况再次发生决心去阅读源码。主要文件application.js koa框架的入口文件context.js 创建网络请求的上下文对象request.js 用于包装koa的request对象response.js 用于包装koa的response对象源码分析首先我们看下不使用koa和使用的区别const http = require("http");const ser原创 2020-12-07 11:26:34 · 450 阅读 · 0 评论 -
修炼js 8 发起http请求的方式
前言近两天在公司写登录的时候发现我居然快忘记fetch请求和原生实现请求的方式了,估计是太久没看了荒废了,在此记录一下发起http请求的方式,方便后续自己查看。一、原生请求let xhr = new XMLHttpRequest();xhr.open('GET','url',true);xhr.onReadyState(()=>{})二、ajax请求// getajax.get( url:url, success:(data)=>{ console.log(dat原创 2020-11-13 17:22:18 · 199 阅读 · 0 评论 -
前端学习路线
前言更新这篇blog的目的是为了帮助想学习前端却不知从什么地方学起,不知道该学什么的同学快速进军前端的基本路线。一、入门首先我们学习任何东西都一样要打下坚实的基础,所以入门必学三件套。HTML5(H5),CSS3,ES5(js)(必学)H5:学习经常会使用到如HTML5表单、音频和视频、离线和本地存储、盒子模型、Canvas即可。CSS3:学习基本写法和特性如(可继承属性),flex布局JS:学习基本语法,原型链,DOM,BOM,异步函数二、起步学习完了基本使用,我们开始逐渐追求学习得更深入原创 2020-10-26 14:55:00 · 5630 阅读 · 16 评论 -
vue 重要知识
这些vue知识你真的掌握了吗?1、计算属性和侦听器可能很多对vue已经比较熟悉了,但是你真的了解这两个属性吗2、混入混入在我们自己开发的时候写着很方便,但是别在看到我们的代码后可能就不方便了,所以现在感觉这种写法不是很推崇。但是万一你就是那个看别代码的人呢??????????3、自定义指令vue除了默认的指令(v-model 和 v-show)外,你还可以自己拓展指令。这听起来就很好玩4、插槽...原创 2020-10-19 23:08:59 · 616 阅读 · 2 评论 -
前端 面经
自我介绍一下1、JS 事件循环js是一门单线程语言2、koa 和 egg 区别egg 基于 koa进行强化,koa没有controller,service,router,egg加入了这些,这样更便于工程化。3、nodejs中间件原创 2020-09-17 23:31:24 · 483 阅读 · 0 评论 -
浅谈 Vue 1
1、Vue是什么可能很多小伙伴都已经知道了,但是我还是啰嗦一下, Vue是一套用于构建用户界面的渐进式框架,是前端三大框架中最简单易学的框架。2、为什么要学Vue我上面也说了,这是前端最简单的框架,对新手比较友好,建议新手玩家都先从Vue上手.,最简单意味着学习成本比较低,而且Vue大小比起其他两个框架要小,Vue压缩后20kb,React压缩后34kb左右,Angular压缩后大概是60Kb左右。Vue核心响应式更新机制,就是说当我们的数据更新之后,视图会自动的刷新。3、如何创建Vue项目3.1原创 2020-09-13 10:53:46 · 404 阅读 · 0 评论 -
修炼js 7 es6新特性2
es6新特性 模板字符串,spread/rest操作符,Reflect对象基本用法及可用方法,新特性间结合出来的新玩法,大家可以自己去试试原创 2020-08-31 18:24:14 · 1947 阅读 · 3 评论 -
修炼js 6 es6新特性
es6能够让我们按照一定的模式,从数组或对象中提取值并赋值其他变量,这被称之为结构赋值,接下来让我们看看一个简单的例子。var [a,b,c] = [1,2,3];console.log(a); // 1这段原创 2020-08-30 21:33:37 · 1615 阅读 · 3 评论 -
腾讯提前批面经
1、自我介绍一下。2、异步函数有哪些。3、回调函数实现方式有那几种。4、讲一下重排和重绘。5、url到页面发生了什么。6、写一个防抖函数。7、数组去重。8、vue双向绑定原理,set内部实现如何实现的。9、虚拟dom,有什么好处,如何实现的,怎么实现最小代价替换/删除dom的。10、koa 中间件。11、说说generator。12、中途有个问题我确实忘了一直没听过,导致没记住。不好意思。好了估计一面凉凉。...原创 2020-08-17 21:30:23 · 341 阅读 · 0 评论 -
修炼js 5原型链及继承
原型链在讲解原型链之前我们先来看看在你创建对象时发生了什么,接下来我们试着分析一下,下面的这段代码到底做了什么事。new Date();这段代码干的事情如下1、创建了一个新的对象2、将这个对象接入原型链3、绑定this4、返回这个对象ok,我们开始解释原型链。。。那么什么是原型链呢。我们都知道每个对象都有自己的 [[proto]]属性,这个proto指向该对象的构造函数的原型对象例如 var date = new Date() console.log(date.__pro原创 2020-08-17 16:53:07 · 243 阅读 · 0 评论 -
修炼js 4DOM
DOM是Document Object Model(文档对象模型)的缩写,DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。如何获取DOM?原生获取方式如下:// 方式一 根据id获取dom节点document.getElementById("id");// 方式二 获取标签名称为参数的dom节点,返回一个数组document.getElementByTagName("ul");//方式三 获取class="hh"的dom节点,返回一个数组document.getEle原创 2020-08-15 20:07:50 · 284 阅读 · 4 评论 -
修炼js 3数据结构
这次我们来缕一缕Js的数据结构。1、首先登场的是大家都比较熟悉的数组接下来让我们先看看如何定义数组吧。// 方式一let arr1 = [];// 空数组// 方式二let arr2 = new Array(5);//创建长度为5的空数组,不写参数即 为没有长度的空数组// 以上都是常见的写法,接下来是不太常见的写法// 方式三let arr3 = Array.of(1,2);//创建了一个长度为2数组并填充为1,2// 方式四let arr4 = Array(5).fill(3原创 2020-08-08 14:15:03 · 214 阅读 · 0 评论 -
修炼js 2函数及作用域
函数是Js里比较重要的知识,本篇博客讲解了比较常见的定义函数的方式及特殊的函数形式和函数的this指向。看完这篇博客相信你对函数及作用域会有一个相对清晰的认识,在es5中的"类"也是一个函数,不过在本篇中不做讲解。原创 2020-08-01 23:53:09 · 231 阅读 · 1 评论 -
修炼js 1
记录一下JS变量js变量类型有如下几种:number,string,boolean,null,undefined,symbol,object:{Array,Object,Function,Date...} //这一系列是引用类型其中Object为引用类型存放在堆内存中,其余的为值类型存放在栈内存中定义变量的方式及区别:// 方式一var a = 111; //不会劫持作用域,如果不赋值会默认初始化为 undefinedvar a = 222; // 再次定义会覆盖//方式原创 2020-07-30 20:02:25 · 179 阅读 · 0 评论 -
js实现KMP与两个随机数组取最大的三个数的和比大小
KMP模式匹配算法思想:目标串 a 下标为 i 与模式串 b 下标为 j 自第一个字符开始比较,相等则,i、j 同时自增,如果不等则 b[j] = next[j] 数组的下标。next数组是根据模式串 b 得出的,可以大致理解为,b[j]当前下标之前有多个前缀等于后缀。话不多说,上代码// An highlighted block (function speedOrder...原创 2020-03-20 13:09:17 · 262 阅读 · 0 评论