一共有 65 篇文章

以后博客专职动物园算了…

刚刚看到一题

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

我想这什么腿?然后什么都没想,直接就

return str.replace(/\ /g, '%20')

然后过了……虽然100多毫秒

看到monad我的第一反应竟然是莫纳德…

最近学习haskell的时候(意外的觉得入门不难),接触到函数式编程一个新的思想——Monad

之前在知乎看到轮子哥说:学习haskell是好事,但最好就是学到monad就停下来,然后去学别的。对别的语言帮助很大。

然后在知乎看了一些monad的答案,找了点关于monad的博客看,没看懂。英文的话更不可能了!直接看paper的话我会脆死的。

后来偶然找到一篇文章:Functors, Applicatives, And Monads In Pictures - adit.io

当然有中文版:Functors, Applicatives, And Monads In Pictures - adit.io
图解 Monad - 阮一峰的网络日志

全程特别轻松,我以后写博客也要按照这个节奏来写!很有意思!
(那个抽东西的手直接戳爆了我的笑点…特别是解构传入胶水函数的时候)

关于理解的话,挖个坑以后总结~

但有一点是:我用 Vue-jsx 的时候,几乎全是Monad

著名框架jQuery所使用的设计模式——“虾扯蛋”

之前在知乎回答过一个问题:2018的前端应该学什么。

我回答了:就算前端再复杂,jQuery依然是最流行的那个。

这答案怎么样呢?废话!肯定没人点赞了!

人性就是如此!一旦接受了更装逼新的思路,就会觉得以前见过的东西都太弱了!

新项目想用什么就用什么,什么技术栈健全就用什么。可是老项目并没办法想干什么干什么,时间和精力不允许他去重构。金蝶还在卖VB呢,他们肯定也想过VB已经不行了。

好了题外话,我还是很有兴趣实现一个塞进nlvi的类jq的。

我说我是做外包的肯定没人信,给你看看外包程序员瞎几把搞的热情!

前排提醒:vue-jsx和react-jsx相差甚远,前者基本就是玩具生产链。很多想利用JS语言特性的骚套路基本上都不好实现,而且感觉奇奇怪怪的。所以你的生产环境,千万不要乱试vue-jsx这种搭配,够简单就无所谓了…

在我的博客打开开发者工具 -> console,输入 Nlvi.tools.scroll 试试?

开个玩笑,我自己也不知道这算不算柯里化(逃

总之为什么这么写,我自己觉得这样容易理解,方便盲僧(理清)。

还有最近关于“如何治理别人爱装逼的毛病”系列中刚写的一坨,新鲜的:

const menuItem = (list) =>
      list.map(({title, color, icon, descs}) =>
        <menu-item title={title} color={color} icon={icon}>{
          descs.map(v => <span>{v}</span>)}</menu-item>)

也许主题应该改为:你只会使用Console.log()?

现在的前端虽说是越来越复杂,但是我怎么觉得现在前端的要求越来越低了?应该说现在的人,看个几遍vue,知道console.log(),知道var, {}, [],就敢出来找工作了。但是console就这么个方法?

搞笑,你在你的浏览器输入console,自己看看有多少东西!所以为了高效调试我觉得有必要全了解一遍。

一篇思考文,关于JS的reference和Go的指针。(臆想型论文?)

最近投入大量时间接触Golang,了解“指针”的时候,想起了以前学习C语言时对“指针”的疑问:指针是什么。

以前还小不理解指针和野指针,只知道野指针会出现内存溢出或者值不正确的情况。而且网上大多讲指针的文章看起来都很难。就像现在的知乎:一句话能说清楚的东西恨不得从它的诞生还是写起。就连LOL赛评也是这副P样。

以至于我后面对C语言没好感,对C++厌恶,对有“指针”的语言直接没兴趣。

在看到Go的指针的时候,我已经想放弃了。但是想回来,毕竟上一次接触指针已经6年了,也许现在看就能理解出什么呢。(过程中接触的OC根本不能算经验,因为当时完全就是靠抄靠背来写iOS应用,最后还是嫌弃OC麻烦进阶无法理解去学习了swift)

稳的稳的,这次真是为了需求造轮子了。Hyper = Hexo + Typer.

接触到hexo是因为,hexo可以是一个前端博客生成器,直接生成一个前端静态页面,做到可以上传到github“个人页面”作为博客网站。

不过,毕竟是基于node的生成器,编写过程很geek。首先创建和预览甚至发布,依赖terminalnode。你要使用一个你喜欢的markdown编辑器,或者直接就在代码编辑器搞例如vscode。原来我也是用这个写博客。因为自带了terminal,直接创建了搞完直接上。后来生活逐渐好点,用的 iterm2 + zsh 之后,编辑器改用了Typora。然而关于这段的话,我上一篇搞electron+vue+webpack2+TypeScript什么体验 已经讲得够多了,所以不赘述了。

但是现在,可能生活会更好了…

本来是想放弃的,后来歪打正着,成功运行。最后搞一个ts类型的启动器,不想再懵了。

vue-ts-electron-starter

想看看原项目electron-vue有没有这个打算,没有的话自己fork个分支出来。这个将就。

这次搞这个项目目的就很明显了,想做一个Hexo博客的编辑器(没错就是我这个博客的核心)。Hexo的话,属于页面生成器类的博客系统。直接一套生成静态页面,然后随意访问。因为一整套静态页面故还是有人喜欢直接干一套SPA上去,体验也好。

其实搞这个,我去年就想搞了。可是去年的话,明显前端的技术都不扎实更别说搞了,当时的想法是写一个Mac App(我swift应该还行,随便写写问题不大。不过可能现在的话问题就大了)。不过就一直拖拖拖,导致swift3.0都有苗头了我还是没想写。而且关于如何操作terminal命令,还是个问题。

这次心就大了。搞了再说,搞一半不行了就让他荒了。以后想起来再搞,再搞的时候技术肯定又上涨。如果这波做成了,开源,我不管有没有人用,总有人喜欢用。

联动水文,大约半年前记录了Javascript的this。顺水推舟理一下call(),bind(),apply()

扩展阅读:关于JavaScript的this

还是上次的代码,修改一下

let name = 'panda'
let obj = {
    name: 'koala',
    getName() {
    	return this.name
    }
}
let test = obj.getName
test()					//undefined.

(敲黑板!)复习一下!为什么就undefined了!原因就是,this指向不同了。那么直接运行是否可以

let name = 'panda'
let obj = {
    name: 'koala',
    getName() {
    	return this.name
    }
}
obj.getName()		//koala

0%