Wml Blog

前端攻城狮呀

自己写的死亡递归,哭着也要改完

挖坑 最近正在写一个CLI工具,经常需要使用node的文件流操作,正好需求是读取文件流,再写入指定文件中,不可避免的需要使用到递归遍历目录。于是在行云流水地写完一个自认为还比较完美的递归以后(~ ̄▽ ̄)~ ,大致如下: function create(temp, target) { const files = fs.readdirSync(temp); files.for...

图片资源加载与渲染

背景 前两天测试妹纸拿着手机跑来,一个之前同事做的内嵌app的h5搜索结果页,在原生输入框搜索完关键字后,反复刷新,对着charles上的结果理直气壮和我说,为啥这个第三方上报,刷了一次就不上报了?==emmmm…哪有人这么无聊这么刷?(当然这句话我只敢在心里bb)果然测试妹纸上辈子都是被程序猿折了翅膀的天使。。。 既然测试妹纸提出来了,秉持着认真负责的态度,也是要一查究竟的。查看源码,...

【学习笔记】ECMAScript 6

1、变量分为原始类型和引用类型; 原始类型:存储在栈中(stack)的简单数据段,值直接存储在变量的访问位置; 引用类型: 存储在堆中(heap)的对象,存储在变量处的值是一个指针,指向存储对象的内存处。 原始类型: Undefined,Null, Boolean, Number, String.这些原始类型占据的空间固定,所以可以将他们存储在较小的内存区域-栈中,便于迅速查询...

CSS的BEM思想

背景 是否有被css支配过的恐惧? 是否在开发较大型网站时,因为css架构不够强大而给自己挖坑的经历? 是否在维护别人代码时,因为害怕破坏别的东西而不敢下手? 又是否在修改css样式时,不经意间就引发可怕的蝴蝶效应? 如果你多少有过这些经历的话,那接下来文章兴许能解救你于这尴尬的境地中。 CSS架构 css的编写很容易,但在大规模网站开发的时候,经常发现花费大量时间在阅读、...

【学习笔记】 webpack

webpack学习 webpack概念 入口(entry) 指定入口,指示webpack使用哪个模块作为构建起内部依赖图的开始。配置一个或多个入口起点,默认值./src webpack.config.js module.exports = { entry: './path/file.js' }; 单个入口 用法:entry: string|Array<str...

git rebase

背景 使用git开发过程中,尤其是团队开发时,合并操作用的较多的,大概都是git merge,关于git merge这里不做详述,相信在在使用过程中,无论是使用git命令或者图形化操作软件,如Smartgit或者Sourcetree。开发中经常可以看到git的历史树是这样的: 交杂错乱,对于后续走查和交接来说简直苦不堪言, 导致这样的问题,大多数是因为我们使用merge直接去合并分支...

浅谈JavaScript内存泄露

前言 移动互联网飞速发展的时代,网页性能变得尤为重要,而关于内存泄露的问题也是开发人员最终不得不面对的问题,内存泄露导致应用程序反应迟缓、奔溃、高延迟等问题;关于内存泄露,翻阅一些文章和知识点,个人随想总结: 什么是内存泄露 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。这...

记录一次线上问题排查

说在前面 (writed 2020/07/11-modified 2020/09/14) 程序猿最怕的是什么,404 not found?不,我觉得最令人头秃的难道不是开发、测试环境一路顺畅,开心地一上线,结果就报错了==而且还是一些奇怪的错误?? 要上线了(^▽^) 一个夜黑风格一如往常的发版日(就是晚上8点…),在大家奋战开发了几天后,终于迎来了可喜可贺的上线时光,大家怀揣着激动而...

【学习笔记】 React的那些事儿

前言 React是Facebook开源的一个用于构建用户界面的Javascript库,已经应用于Facebook及旗下Instagram。和庞大的AngularJS不同,React专注于MVC架构中的V,即视图。 虚拟DOM和组件化是react的两大特点。虚拟DOM是React的基石。它的两大优点在于:一是性能方面,web页面中会有大量的DOM操作使得页面渲染速度变慢,React优化了这...

如何搭建jekyll主题的github.io博客

前言 本文将介绍如何通过github pages 搭建自己的博客,网上相关教程很多,大多教程都是可行,方法也大同小异,接下来,我将详细叙述搭建博客的方法。 正文 1、 建立属于自己的github.io repository 进入我的仓库,点击右上角fork,将我的仓库拉到你自己的账号下; 再点击settings进入设置仓库名 修改仓库名,仓库命名格式必须按照 <userna...