好久没写文了,哈。

过去三年的工作经历,回头发现,大部分时间都在拼了命地支撑运营需求,想让业务快速发展,好让自己快速提升。甚至站在了运营层面提出过各种各样的东西,但实际上这样好吗?

一直在跟着业务跑,在业务上做过不少迭代优化,也带来过一些提升。而在技术层面上,却在一两年前就到达了自己的技术瓶颈,不再明确自己核心应该考虑什么。

在业务一开始的“初创”阶段,我们没法思考太多,只能拼了命地快速迭代,还挺享受这种从无到有的快感。但当一个业务稳定下来之后,不需要再疲于奔命的时候,我们该做什么?

阅读全文 »

背景:彼时刚毕业没多久,后端遇到一个问题,一个按钮在很多的时间内被双击了,导致可能创建了两笔相同的订单,或者创建了两笔相同的售后。于是有了这样一个需求——如何防止手残党双击,并且是在那么多页面的情况下。思路是:给这些按钮赋予一个类名,最后重新设置这些按钮上绑定的事件函数,在中间插入一些内容(点击后0.5s内不响应操作,代码见下方 防双击通用函数 )。

当时想的好牛逼。连大后端都说,卧槽,牛逼啊,hook啊。于是才知道了hook(钩子)一词。于是才明白,什么算法不算法,也只是名字而已。其实日常中不经意间可能就用了对应的一些概念。顿时,自豪感爆棚。ヽ(•̀ω•́ )ゝ

阅读全文 »

遥记得,当年还没出山之前,最最开始的面试,人家问我:你觉得jQuery最好用、最厉害的地方是什么?

我说:链式调用

233333,当然现在觉得这个回答很搞笑。但是就当时而言,认为链式调用是多么神奇的一件事情。直到看了《JavaScript语言精粹》,才发现是这么的简单。

阅读全文 »

this

1
var name = 'aaa';
var yo = function () {
    // console.log(this);
    console.log(this.name);
};

var x = {
    name: 'ddd',
    yo: yo
};

// 题目一
yo();

// 题目二
x.yo();

// 题目三
(function () {
    yo();
})();

// 题目四
(function () {
    var name = 'eee';
    yo();
})();

// 题目五
x.yo.call(window);

call 和 apply

  1. 有什么区别
  2. Math.max.apply(Math, [1, 2, 3, 4, 5, 6]) 值
  3. [1, 2, 3].map(parseInt) 值(坑题,和this 关系不大)

三步上篮都还没练好,就开始学动作玩花式篮球了?
天才樱木花道在全国大赛的最后一投,那也是练了几万个定点投篮呢。
这是一个循序渐进的过程,运球、上篮、投篮基本功扎实,练得多了,就是百发百中。
然后,哎哟不错哦,摆个流川枫那美美的造型,学樱木扣个篮什么的,才能说,根本不在话下。

面试至今,几乎是全部阵亡,少数能回答一点上来的,也几乎没有。可见前端入门之易,而能学精的人却少之又少。

阅读全文 »

在我个人看来,流程化就是一系列流程,一系列封装的基本操作。例如:早饭、中饭、晚饭。人们常说,你怎么又忘了呀,也没见你忘了吃饭。我想流程化的目的,就是让你在不用记的同时,也没有忘。

阅读全文 »