SF
为什么感觉 Mac 自带的输入法好卡
为什么感觉 Mac 自带的输入法好卡
注册登录
关注博客
注册登录
主页
关于
RSS
测试定时发表
fish
2019-06-29
阅读 1 分钟
1.1k
测试定时发表测试定时发表测试定时发表测试定时发表测试定时发表测试定时发表测试定时发表
对于单页应用中如何监听 URL 变化的思考
fish
2018-05-27
阅读 3 分钟
3.6k
开发这个扩展的原因是我在 GitHub 中所 star 的项目实在太多了(截止目前 671 个),有的项目过个几天回来看就忘了为什么 star 了,有的轮子想找的时候发现忘记叫什么了,这么多一个个找实在浪费时间。于是我一直在想有这么个工具,可以自定义对 GitHub 中的项目进行备注,然后可以根据备注进行搜索,于是便有了这个扩展。
pointer-events: none 在 SegmentFault 中的两个应用场景
fish
2018-05-21
阅读 2 分钟
2.9k
pointer-events: none 顾名思义,就是鼠标事件拜拜的意思。元素应用了该 CSS 属性,链接啊,点击啊什么的都变成了 “浮云牌酱油”。pointer-events: none 的作用是让元素实体 “虚化”。例如一个应用 pointer-events: none 的按钮元素,则我们在页面上看到的这个按钮,只是一个虚幻的影子而已,您可以理解为海市蜃楼,幽灵的...
RESTful API 设计学习笔记
fish
2018-04-30
阅读 2 分钟
2.5k
本文主要参考阮一峰的 RESTful API 设计指南 1. 协议 API 与用户的通信协议,总是使用 HTTPs 2. 域名 应该尽量将 API 部署在专用域名下: {代码...} 如果 API 很简单,不会有进一步扩展,可以考虑放在主域名下: {代码...} 3. 版本 应该将 API 的版本号放入 URL: {代码...} 另一种做法是,将版本号放在 HTTP 头信息中,...
填坑:在 SegmentFault 开发单页应用之图片引用的问题探索
fish
2018-02-09
阅读 2 分钟
2k
SF 的基本架构还是后端路由,这也使得页面频繁地整体请求,体验非常不好。而技术号这个模块,不依赖 SEO,侧边导航又具有非常强烈的可切换性,所以适当地引入一个 MV* 框架是非常合适的。基于此考虑,决定在这个模块的开发中引入 Vue.js。
分享几个写 demo 的思路99
fish
2018-01-16
阅读 3 分钟
5.5k
最近发现了一个新的写 demo 的思路,仔细一想,自己仿佛积累了不少写 demo 的思路和想法,总结一下,抛砖引玉。 本文所说 demo 主要分以下三种: 本地 demo 外链 demo 文章中带 demo 本地 demo 楼主在工作和学习中是比较喜欢写 demo 的,抛出问题非常直观。 本地写 demo,爱咋整就可以咋整,简单到可以只有一个 HTML 文...
早产的 2016 年终总结
fish
2016-11-14
阅读 4 分钟
3.8k
当大多数人还在纠结「年终总结」是元旦写还是农历过年写好的时候,楼主的「年终总结」却 “早产” 了。为什么会 “早产”?因为楼主觉得自己的 2016 已经结束了,已经可以盖棺定论了,不会再有重要的事情发生了。再加上最近工作浑浑噩噩,得过且过,没有目标,诸事不顺(负能量小王子),觉得有必要提前总结,看看自己这一年...
源码解读这半年
fish
2016-11-02
阅读 2 分钟
4.5k
这半年以来,花费了大量的业余时间,共计写了 25 篇随笔(包括此文),也给 underscore-1.8.3 的源码加了差不多 1500 行 注释,对于当初说的要做「史上最详细的 underscore 源码剖析」,至此我也觉得问心无愧。
Underscore 整体架构浅析
fish
2016-11-01
阅读 4 分钟
4.2k
终于,楼主的「Underscore 源码解读系列」underscore-analysis 即将进入尾声,关注下 timeline 会发现楼主最近加快了解读速度。十一月,多事之秋,最近好多事情搞的楼主心力憔悴,身心俱疲,也想尽快把这个系列完结掉,也好了却一件心事。
浅谈 Web 中前后端模板引擎的使用
fish
2016-10-30
阅读 3 分钟
5.1k
这篇文章本来不打算写的,实话说楼主对前端模板的认识还处在非常初级的阶段,但是为了整个 源码解读系列 的完整性,在深入 Underscore _.template 方法源码后,觉得还是有必要记下此文,为了自己备忘也好,为了还没用上前端模板引擎的同学的入门也好。(熟悉模板引擎的可以帮楼主看看文中有没有 BUG ..)
JavaScript 函数节流和函数去抖应用场景辨析
fish
2016-10-11
阅读 2 分钟
2.7k
言归正传,今天要介绍的是 underscore 中两个重要的方法,函数节流和函数去抖。这篇文章不会涉及具体的代码实现(关于代码实现请期待下文),会从零开始介绍函数节流和函数去抖的概念,辨析应用场景。为什么我对这两个方法情有独钟要花大篇幅去介绍?因为就是它们带我入了「underscore 源码解读」的坑(详见 一次发现und...
underscore 源码解读之 bind 方法的实现
fish
2016-09-05
阅读 3 分钟
2.6k
前文 跟大家简单介绍了下 ES5 中的 bind 方法以及使用场景(没读过的同学建议先看看),毕竟 bind 是 ES5 的东西,低版本 IE 不支持。今天就根据 underscore 的实现,来聊一聊如何实现一个 bind 的 polyfill。
关于 bind 你可能需要了解的知识点以及使用场景
fish
2016-08-17
阅读 4 分钟
4.4k
不看不知道,一看吓一跳,已经整整一个月没有更新 underscore 源码解读系列文章了。前面我们已经完成了 Object ,Array,Collection 上的扩展方法的源码剖析,本文开始来解读 Function 上的扩展方法。
也谈前端面试常见问题之『数组乱序』
fish
2016-07-05
阅读 4 分钟
10.1k
可能有的童鞋是第一次看楼主的系列文章,这里再做下简单的介绍。楼主在阅读 underscore.js 源码的时候,学到了很多,同时觉得有些知识点可以独立出来,写成文章与大家分享,而本文正是其中之一(完整的系列请猛戳 [链接])。之前楼主已经和大家分享了 Object 和 Array 的扩展方法中一些有意思的知识点,今天开始解读 Col...
JavaScript 特殊对象 Array-Like Objects 详解
fish
2016-06-25
阅读 3 分钟
2.9k
JavaScript 中一切皆为对象,那么什么是 Array-Like Objects?顾名思义,就是像数组的对象,当然,数组本身就是对象嘛!稍微有点基础的同学,一定知道 arguments 就是 Array-Like Objects 的一种,能像数组一样用 [] 去访问 arguments 的元素,有 length 属性,但是却不能用一些数组的方法,如 push,pop,等等。
你可能不知道的 NaN 以及 underscore 1.8.3 _.isNaN 的一个 BUG
fish
2016-06-21
阅读 3 分钟
3.3k
这篇文章并不在我的 underscore 源码解读计划中,直到 @pod4g 同学回复了我的 issue(详见 [链接])。其实之前也有同学提出 isNaN 有 native 的 function,正好借此文辨析下几个常见的概念、方法,她们是 NaN,Number.NaN,isNaN,Number.isNaN,以及 underscore 中的 _.isNaN,顺便揪出了一个 BUG。
【underscore 源码解读】Array Functions 相关源码拾遗 & 小结
fish
2016-06-13
阅读 4 分钟
3k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
JavaScript 数组展开以及 underscore 重要的内部方法 flatten 详解
fish
2016-06-11
阅读 4 分钟
5.2k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
也谈面试必备问题之 JavaScript 数组去重
fish
2016-06-05
阅读 5 分钟
4.1k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
【underscore 源码解读】如何优雅地写一个『在数组中寻找指定元素』的方法
fish
2016-06-02
阅读 6 分钟
2.3k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
【underscore 源码解读】Object Functions 相关源码拾遗 & 小结
fish
2016-05-26
阅读 4 分钟
2.2k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
【underscore 源码解读】JavaScript 中如何判断两个元素是否 "相同"
fish
2016-05-25
阅读 4 分钟
7.1k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
【underscore.js 源码解读】for ... in 存在的浏览器兼容问题你造吗
fish
2016-05-22
阅读 4 分钟
4k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
【underscore.js 源码解读】常用类型判断以及一些有用的工具方法
fish
2016-05-21
阅读 3 分钟
3.7k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
从用 void 0 代替 undefined 说起
fish
2016-05-17
阅读 2 分钟
4.3k
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写...
【算法之美】你可能想不到的归并排序的神奇应用 — leetcode 327. Count of Range Sum
fish
2016-05-10
阅读 3 分钟
6.3k
题意非常简单,给一个数组,如果该数组的一个子数组,元素之和大于等于给定的一个参数值(lower),小于等于一个给定的参数值(upper),那么这为一组解,求总共有几组解。
【算法之美】logn 时间复杂度求解两个有序数组的中位数
fish
2016-05-10
阅读 3 分钟
6.2k
题意非常简单,给定两个有序的数组,求中位数,难度系数给的是 Hard,希望的复杂度是 log 级别。回顾下中位数,对于一个有序数组,如果数组长度是奇数,那么中位数就是中间那个值,如果长度是偶数,就是中间两个数的平均数。
如何优雅高效地插入百度广告
fish
2016-04-21
阅读 7 分钟
11.1k
最近跟百度广告打了会交道,如果您正在或者即将和百度广告打交道,那太好了,本文一定会让您不虚此行。百度广告,即百度联盟广告,在 这里 进行注册后,经过 一些配置,便可以生成一段 js,将该 js 插入到 HTML 页面中,便能出现百度的广告。
一道有意思的编程思考题:【妖怪和和尚过河问题】
fish
2016-04-16
阅读 4 分钟
3.4k
有三个和尚和三个妖怪要利用唯一的一条小船过河,这条小船一次只能载两个人,同时,无论是在河的两岸还是在船上,只要妖怪的数量大于和尚的数量,妖怪们就会将和尚吃掉。现在需要选择一种过河的安排,保证和尚和妖怪都能过河且和尚不能被妖怪吃掉。
一次发现underscore源码bug的经历以及对学术界拿来主义的思考
fish
2016-03-28
阅读 3 分钟
5k
最近干了件事情,发现了 underscore 源码的一个 bug。这件事本身并没有什么可说的,但是过程值得我们深思,记录如下,各位看官仁者见仁智者见智。