以后博客专职动物园算了…
刚刚看到一题
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
我想这什么腿?然后什么都没想,直接就
return str.replace(/\ /g, '%20')
然后过了……虽然100多毫秒
以后博客专职动物园算了…
刚刚看到一题
请实现一个函数,将一个字符串中的空格替换成“%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。首先创建和预览甚至发布,依赖terminal
和node
。你要使用一个你喜欢的markdown
编辑器,或者直接就在代码编辑器搞例如vscode
。原来我也是用这个写博客。因为自带了terminal
,直接创建了搞完直接上。后来生活逐渐好点,用的 iterm2 + zsh 之后,编辑器改用了Typora
。然而关于这段的话,我上一篇搞electron+vue+webpack2+TypeScript什么体验 已经讲得够多了,所以不赘述了。
但是现在,可能生活会更好了…
本来是想放弃的,后来歪打正着,成功运行。最后搞一个ts类型的启动器,不想再懵了。
想看看原项目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