首页
学习
活动
专区
工具
TVP
发布

大史住在大前端

专栏作者
106
文章
132330
阅读量
36
订阅数
javascript基础修炼(13)——记一道有趣的JS脑洞练习题
console.log(i)在执行时,会按照词法作用域来取得循环条件中的变量 i的值,本题的基本思路实际上就是如何在console.log语句和for循环条件之间添加(或修改)代码来隔离变量 i的词法作用域。
大史不说话
2019-10-14
5940
Stanford公开课《编译原理》学习笔记(2)递归下降法
课程里涉及到的内容讲的还是很清楚的,但个别地方有点脱节,建议课下自己配合经典著作《Compilers-priciples, Techniques and Tools》(也就是大名鼎鼎的龙书)作为补充阅读。
大史不说话
2019-10-08
9660
【带着canvas去流浪(13)】用Three.js制作简易的MARVEL片头动画(下)
有了上一篇基础知识的储备,本节就来制作一下简易版的MARVEL的片头动画。【点击观看动画效果】
大史不说话
2019-07-25
1.1K0
【带着canvas去流浪(12)】用Three.js制作简易的MARVEL片头动画(上)
通读完上一篇博文中提及的教程,觉得应该搞个大作业巩固一下所学的知识,想起刚上映的漫威宇宙第三阶段收官之作《蜘蛛侠·英雄远征》,于是决定仿一个MARVEL的片头动画作为three.js的课后练习,使用的版本是R104版本。本节先来解决视频贴图的问题。
大史不说话
2019-07-22
3.1K0
【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
事件循环是Node.js能够实现非阻塞I/O的基础,尽管JavaScript应用是单线程运行的,但是它可以将操作向下传递到系统内核去执行。
大史不说话
2019-06-19
1.2K0
【nodejs原理&源码赏析(6)】深度剖析cluster模块源码与node.js多进程(下)
前两篇博文中已经分别介绍了使用cluster模块建立集群时主进程执行cluster.fork( )方法时的执行逻辑,以及net模块在不同场景下建立通讯的基本原理。本篇继续分析cluster模块,从第一个子进程开始建立服务器讲起,cluster基本用法示例代码再来一遍:
大史不说话
2019-06-15
7620
【nodejs原理&源码赏析(4)】深度剖析cluster模块源码与node.js多进程(上)
cluster模块是node.js中用于实现和管理多进程的模块。常规的node.js应用程序是单线程单进程的,这也意味着它很难充分利用服务器多核CPU的性能,而cluster模块就是为了解决这个 问题的,它使得node.js程序可以以多个实例并存的方式运行在不同的进程中,以求更大地榨取服务器的性能。node.js在官方示例代码中使用worker实例来表示主进程fork出的子进程,使得前端开发者在学习过程中非常容易和浏览器环境中的worker实现的多线程混淆。为了容易区分,我们和node官方文档使用一致的名称,用集群中的master和worker来区分主进程和工作进程,用worker_threads来描述工作线程。
大史不说话
2019-06-02
9960
【带着canvas去流浪(10)】文字烟花
首先动画的主框架仍然是我们反复使用的逐帧动画框架,烟花生成以后的部分也不难理解,我们之前已经对物理碰撞进行过仿真,这里实际上就是模拟了带有初速度的自由落体。所以这个小动画里唯一的难点,就是如何根据文字生成烟花,只要做到这一步,其他的部分都比较容易实现。
大史不说话
2019-05-17
8910
javascript基础修炼(12)——手把手教你造一个简易的require.js
许多前端工程师沉浸在使用脚手架工具的快感中,认为require.js这种前端模块化的库已经过气了,的确如果只从使用场景来看,在以webpack为首的自动化打包趋势下,大部分的新代码都已经使用CommonJs或ES Harmony规范实现前端模块化,require.js的确看起来没什么用武之地。但是前端模块化的基本原理却基本都是一致的,无论是实现了模块化加载的第三方库源码,还是打包工具生成的代码中,你都可以看到类似的模块管理和加载框架,所以研究require.js的原理对于前端工程师来说几乎是不可避免的,即使你绕过了require.js,也会在后续学习webpack的打包结果时学习类似的代码。研究模块化加载逻辑对于开发者理解javascript回调的运行机制非常有帮助,同时也可以提高抽象编程能力。
大史不说话
2019-05-14
1.3K0
【带着canvas去流浪(4)】绘制散点图
使用原生canvasAPI绘制散点图。(截图以及数据来自于百度Echarts官方示例库【查看示例链接】)。
大史不说话
2019-03-29
9960
【带着canvas去流浪】(2)绘制折线图
使用原生canvasAPI绘制折线图。(柱状图截图来自于百度Echarts官方示例库【查看示例链接】。
大史不说话
2019-03-20
1.2K0
2018年8月中级前端开发推荐书籍
推荐理由:曾经有一个前端大神说过,如果你想成为前端架构师,首先你得忘记自己是个前端。
大史不说话
2019-03-01
7870
Angularjs进阶笔记(2)-自定义指令中的数据绑定
自定义指令,是Angularjs用来实现组件化的方式,相比于React和Vue的组件化方式,它真的很复杂,自定义指令太重了,它暴露了太多可供定制的参数,以至于普通的开发者完全不知道要用它来做什么而将其束之高阁,毕竟一般的业务逻辑通过controller和service就已经可以完成了。
大史不说话
2019-03-01
2K0
Angularjs1.X进阶笔记(1)—两种不同的双向数据绑定
html-Controller的双向数据绑定,在开发中非常常见,也是Angularjs1.x的宣传点之一,使用中并没有太多问题。
大史不说话
2019-03-01
3.4K0
野生前端的数据结构练习(10)希尔排序,归并排序,快速排序
shell sort也称缩小增量排序,是对插入排序算法的改进,其工作原理是定义一个间隔序列来表示排序过程中进行比较的元素之间有多远的间隔,每次将具有相同间隔的数分为一组,进行插入排序,大部分场景中,间隔是可以提前定义好的,也可以动态生成。在较大的数据集上,希尔排序对于插排的优化效果是非常明显的。
大史不说话
2018-12-24
3700
野生前端的数据结构练习(12)贪心算法
贪心算法属于比较简单的算法,它总是会选择当下最优解,而不去考虑单次递归时是否会对未来造成影响,也就是说不考虑得到的解是否是全局最优。在很多实际问题中,寻找全局最优解的代价是非常大的,这时候就可以通过求次优解来解决问题,这种思想其实在软件工程中很常见,例如React中著名的DOM Diff算法中需要对比两棵DOM树,树的完全对比时间复杂度为O(n^3),而React团队通过只比较同层节点的策略将问题简化为O(n),也就是说得到的结果从全局角度来说并不一定是绝对最优的,但是它可以在大多数情况下表现并不差。
大史不说话
2018-12-24
4130
野生前端的数据结构练习(11)动态规划算法
dynamic programming被认为是一种与递归相反的技术,递归是从顶部开始分解,通过解决掉所有分解出的问题来解决整个问题,而动态规划是从问题底部开始,解决了小问题后合并为整体的解决方案,从而解决掉整个问题。
大史不说话
2018-12-24
4570
野生前端的数据结构练习(9)冒泡排序,选择排序,插入排序
bubble sort的是最基本的算法,被誉为永远会被考从来不被用的算法,基本原则是大数右移,每轮遍历后最右侧的数是最大的,所以下一轮循环时可不予考虑,时间复杂度为O(n^2)。
大史不说话
2018-12-19
2780
javascript基础修炼(10)——VirtualDOM和基本DFS
Virtual-DOM,即虚拟DOM树。浏览器在解析文件时,会将html文档转换为document对象,在浏览器环境中运行的脚本文件都可以获取到它,通过操作document对象暴露的接口可以直接操作页面上的DOM节点。但是DOM读写是非常耗性能的,很容易触发不必要的重绘和重排,为了更好地处理DOM操作,Virtual-DOM技术就诞生了。Virtual-DOM就是在javascript中模拟真实DOM的结构,通过数据追踪和状态对比来减少对于真实DOM的操作,以此来提高程序的效率的一种技术。
大史不说话
2018-12-19
4530
野生前端的数据结构基础练习(2)——队列
循环队列书中并没有提及,它是一种特殊的队列。简单理解就是将基本队列只当做存储结构,而使用front和rear两个指针分别代表队列的头和尾,实际对外表现的队列是front和rear所指向的元素构成的。为了复用存储空间,循环队列在存储结构的实现上是首位相连的。
大史不说话
2018-10-09
5740
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档