假期总结(暑假结束!)
前言短暂的暑假就这么结束了,简单做个复盘,看看自己暑假都做了什么。
关于我
一个在校生(开学大三)
我的主页:Ned - 我的主页
简单描述:Ned - 关于我
博客共计更文十五篇
从7.16开始: JS中,函数原来有这么多种定义方法(暑假开始!)
到9.5号的:中秋想赏月却不想出门怎么办
我的博客:Ned - Blog
感想:要坚持下去,慢慢的,提高质量,加强深度。
掘金社区参与了三个活动,发布了十余篇文章
获得了150+点赞,2000+浏览量
参与活动获得了掘金的升级证书,抱枕,杯子等字节周边
我的主页:Ned 的个人主页 - - 掘金
感想:采用参加活动的方式来督促自己更文学习,确实是一种较为不错的方式,但是八月更文活动,这种31天连续更文会把作者榨干的,确实肝不动,另外发布自己的理解到社区上,也会有好心的大佬来指点,看自己理解有没有错误之类的(我就很幸运的受到了点拨),也能认识许多有趣的人。
字节青训营参与了字节于暑假举办的青训营活动,听了月影、李松峰等老师所讲解的知识,收获甚多。
跟认识的小伙伴顺利完成了最终青训营的大作业,仿掘金抽奖。
了解到这个阶段的前端 ...
中秋想赏月却不想出门怎么办
中秋想看月亮还不想出门怎么办前言是不是快到中秋节了?
中秋节,团圆的日子,先祝各位节日快乐,身体健康!
在吃过团圆饭后,我们是不是还有一个传统的习俗,就是赏月。古时候,人们都住在庭院里,没有现在的高楼大厦,吃完饭在院子里一坐,谈话赏月。
一壶茶,一家人,岂不快哉~
但是问题来了,现如今我们的生活节奏太快了,楼房遍地都是,很少人有雅兴去能够静下心来去做赏月这回事,很有可能是当天晚上因为出去办事,顺便照个相,发个pyq,赏月结束。
但是大家放心,我们是谁?伟大的程序员啊,我们当然可以做到,足不出户的赏月~
开始造月首先我们先来一个黑色的背景板,当作夜空,在其中放上一个div,接下来造月用。
1234567891011121314151617181920<!DOCTYPE html><html><head><title></title><style type="text/css">html,body{ margin: 0; padding: 0;}body{ ...
JavaScript中的设计模式-代理模式
前言学学设计模式,每次更一个,实在太多了。
第一次更新:单例模式
第二次更新:策略模式
第三次更新:代理模式
打算10月前将JavaScript滚个百分之六七十,不知道能不能学完。
计网操作系统数据结构算法还没学
vue还没盘
我还有机会吗
什么是设计模式?在软件设计过程中,针对特定问题的简洁而优雅的解决方案。
把之前的经验总结并且合理运用到某处场景上,能够解决实际的问题。
设计模式五大设计原则(SOLID)
S-单一职责原则
即一个程序只做好一件事
O-开放封闭原则
可扩展开放,对修改封闭
L-里氏置换原则
子类能覆盖父类,并能出现在父类出现的地方
I-接口独立原则
保持接口的单一独立
D-依赖导致原则
使用方法只关注接口而不关注具体类的实现
为什么需要设计模式?
易读性
使用设计模式能够提升我们的代码可读性,提升后续开发效率
可拓展性
使用设计模式对代码解耦,能很好的增强代码的yi修改性和拓展性
复用性
使用设计模式可以复用已有的解决方案,无需重复相同工作
可靠性
使用设计模式能够增加系统的健壮性,使代码编写真正工程化
...
分享一次踩坑,一次自己封装的uni官方api
前言这几天在做一个app,用来打比赛用,使用的是uni+uView的组件库。这个组件库是半道加进来的,学弟推荐的,我看有组件的话确实会方便很多,而且他都是按需引入,不占用额外空间,挺好的,我也就直接拿来用了。
使用感想:感觉这套技术栈跟vue+element差不多了emm,就是某些官方api还不太一样,还是比较顺手的。
组件库传送门: uView - 多平台快速开发的UI框架
但是,不熟悉组件的api以及参数,让我踩了坑,非常难受emm,还是写个记录,长长记性。
本次内容:分享一个踩坑,一个自己进行封装的uni官方api
毕竟踩坑日记专栏好久没更新了。
坑:uView组件库,uToast组件传送门:Toast 消息提示
使用方法:
12345678// 将这个标签放在页面中<u-toast ref="uToast" />// 需要消息提示的话,加上如下代码this.$refs.uToast.show({ title: '登录成功', type: 'success', url: ...
关于浏览器的渲染进程
前言最近都在跟着青训营学习,不跟着学习的时候也去看node的相关课程了,很少有自己去学一些别的知识,刚好今天的学习任务量较少,进度赶出来了,晚上无聊,看了看之前感兴趣的重绘重排的相关知识,梳理了一下浏览器的相关原理,挑出一部分,记录在博客上。
纯记录
渲染进程渲染进程的核心工作是将HTML,CSS和JavaScript转换为用户可以与之交互的网页。主要包括以下线程:
浏览器 GUI 渲染线程渲染流程
分层的目的:避免整个页面渲染,把页面分成多个图层,尤其是动画的时候,把动画独立出一个图层,渲染时只渲染该图层就ok,transform,z-index等,浏览器会自动优化生成图层
光栅化:页面如果很长但是可视区很小,避免渲染非可视区的样式造成资源浪费,x以将每个图层又划分成多个小个子,当前只渲染可视区附近区域
重排
重排 :当DOM的变化影响了元素的几何信息(元素的的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫做重排
重排特点:style后面所有流程都更新
触发重排的方法
页面初始渲染,这是开销最大的一次重排
添加/删 ...
如何写好JavaScript(下)
前言在打开这个视频之前,我真没想到讲的是优化算法之类的东西,可能是如何写好JavaScript(上 )迷惑了我。
有听懂的,有没懂的,先记下来,留着梳理。
看一段代码1234// 判断一个mat2d矩阵是否是单位矩阵function isUnitMatrix2d(m){ return m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1 && m[4] === 0 && m[5] === 0;}
这段代码好不好? 为什么?
这个代码从优雅程度上来说确实是有些过于长了,看起来不是十分的美观,我们可以使用类似于for循环的方式将其变得美观起来。
但是如果他是写在代码底层(spritejs)的话,这么写的性能是最好的,因为他直接拿到索引就可以来比较,是循环所比拟不了的。
月影大佬:我们所有的代码风格,都是根据场合来的,如果是一些框架或者开源的库中,看见了不是很优雅的代码,我们应该结合场景去分析,因为有的时候这么写是有理由的。
...
如何写好JavaScript(上)
前言课程记录笔记第三弹——《跟月影学JavaScript》
今天真被月影大佬讲的js干的有点自闭了,1小时50分钟的视频,我楞是花了将近3个多小时去理解,还一脸懵。
本次课题:如何写好JavaScript(上)
估计,如何写好JavaScript(下)我要后半夜更了,歇一会歇一会
如何写好JavaScript(上)写好JavaScript的一些原则
各司其责
组件封装
过程抽象
写一个🌰写一段js,控制一个网页,让他支持浅色和深色两种浏览模式。
如果是你来实现,你会怎么做?
12345678910111213const btn = document.getElementById('modeBtn');btn.addEventListener('click',(e)=>{ const body = document.body; if(e.target.innerHTML === '☀'){ body.style.backgroundColor = ' ...
前端也要学习基本的UI设计原则与实践套路
前端也要学习基本的UI设计原则与实践套路前言有的人可能说,我是技术研发人员,UI的事情我们团队内会有别的人去操心这个,我只管技术即可。
在一天之前,我也是这么觉得的,但是我今天听了字节的《给开发看的UI设计》这节课后,觉得一个前端工程师也是要具备一定的UI设计能力的。
依赖市面上的组件库已经不能让产品维持在好用的状态了,还需要将一些设计元素添加进去,才能让我们开发的作品,达到一个更好的层次,给与用户最好的体验。
你的团队可能没有UI同学,也可能有UI同学,但是不一定专业,他们经常会是外包人员,UI给出的设计稿通常只是静态文件,是某一交互切面的,很多的交互细节都体现不出来,在大厂中,许多的B端产品是没有专职UI角色的,前端可能要对产品最终呈现出的形态负责。
设计中最重要的事情——交付功能工具:最好用的白板——excaildraw
我们只需要简单粗略的设计大框就可以,设计细节可以后面在补充,在设计UI的时候永远不要忘了,我们归根结底还是要以实现需求,功能优先。
可以使用别的设计工具去画原型图(figma),但是我觉得作为开发人员,简简单单的就可以,一切以方便为主
要设计简单的、完整 ...
Node.js异步编程之Promise
前言先来介绍一下Promise是什么?
Promise:
当前事件循环得不到的结果,但未来的事件循环会给到你结果
是一个状态机
pending——还没有得到结果
fulfilled/resolved——得到了一个正确的结果
rejected——得到了一个错误的结果
从代码入手👻12345678910111213(function(){ var promise = new Promise(function(resolve,reject){ setTimeout(()=>{ resolve();// reject(new Error()); },500) }) console.log(promise); setTimeout(()=>{ console.log(promise); },800)})();
这是一个从pending到resolved/rejected的过程。
那么 ...
Node.js之事件循环
简单叙述一下什么是事件循环还是拿之前的餐厅来举例,我们去点了个番茄炒蛋,服务生告诉后厨做一个番茄炒蛋,张三也去了餐厅,点了个麻辣小龙虾,服务生又告诉后厨做一份麻辣小龙虾,小李也去了,点了个蛋炒饭。
解析一下这个情景,餐厅是一个事件循环,其中我们的点餐叫做线程。服务生第一个把我要的番茄炒蛋端过来了,于是我的线程结束了,因为麻辣小龙虾做的慢,蛋炒饭做完了,服务生又给小李端上来了蛋炒饭,小李虽然是后来的,但是他的过程要比张三快,最后小龙虾好了,服务生给张三端上来小龙虾,至此三个线程都结束了。
用代码实现一个简易版的事件循环12345678910111213141516171819202122232425262728293031const eventloop = { // 事件队列 queue: [], loop(){ while(this.queue.length){ // 如果有事件就进行处理 var callback = this.queue.shift(); ...