1. ES6

    现在 Js 版本更新的速度真的是要开车来追了。阮一峰老师的 ES6 教程也看了一小半,新的语法确实好用,不过普通项目要用还要配上 Babel 这些个全家桶,未免“太劳民伤财”,像 Vue 中直接有 webpack 能帮你搞定也还算是降低门槛了… 还是觉得只有自己记录过的东西才算是有印象了,看过的也就是过眼云烟,过几天就忘,自己记录的还是更靠谱。 let vs var vs const let 不存在变量提升并且有块级作用域的概念。 暂时性死区—-ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。 之前 typeof 永不报错的情况将失效了。 const声明一个只读的常量。一旦声明,常量的值就不能改变。一旦声明变量,就必须立即初始化。 const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。所以对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。而引用类型的,里面的属性是可以进行改变的。 let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。 var tmp = 123; if (true) { tmp = ‘abc’; // ReferenceError let tmp; } 解构 解构不成功,变量的值就等于undefined。 对于数组解构是按照排列顺序,而对象则是要写明属性名称,并且同名。 字符串扩展 这一章除了修复字符识别的bug之外,有用的 API 还有 include(查看字符串中是否包含某个单词) padStart() padEnd()…

  2. 前端何去何从

    毕业后就入了前端,之后也听到过大学里的一些人最终学了前端,想进这个圈子。然而现在回过头来看自己,掌握的知识依旧是非常的少。 这两年前端的爆发式发展,自己也算是体会到了过时的滋味,一开始也是闻风而动学了 Angular 1,那段时间还在看 Laravel 就觉得这两货的路由长得好像。 那段时间也是我第一次尝试写所谓的 单页应用 ,恰巧所在实习的公司,还是在使用 Jquery 进行后台管理系统的开发。遂想推这个技术。 然而现在看的话,当时的自己还是什么都不会的状态,就觉得 ng 写起来快,就盲目的去推,自己也没想明白这个那个的框架到底是想解决什么问题,以及合适它们的应用场景。 不过现在 ng 都已经更新到4了,而且是用 TypeScript 来写的,我都没用过这货。那是否我就已经out了呢? 未必吧~ 现在的感觉就是,框架,语言充其量就是一个工具而已。阿当老师有一句话就是:技术产品化。我的理解就是,对于用户而言,不关心你用的是什么。而我们这些程序员倒是天天在折腾。 我也折腾,一会在看 NodeJs 一会又是爬虫。但这些都是基于兴趣来的。 其实并不怕要学一些新框架,语言。学个一个月,我也能写出东西来。 最让我觉得有意思的是,当我在做绩点计算器的时候,因为我不服别人用 Java .Net 写的客户端,我要是用 web的形式展现也很不错啊,而且经过长时间的积累,我还能玩出新的东西,计算全校课程最多的专业,计算出课程重复交叉率最多的两个专业,全校哪个专业的学生几点最高等等有意思的统计数据。 那么我在做的时候,我就只想把 NodeJs 作为模拟登陆的一个工具,我也不想用 mongodb ,换我最熟悉的 Mysql + php 不行么? 而且数据量又不大啊,然后想万一再做了一个站点,那么是不是会有 sso 的问题? 所以我学了一下 redis ,又因为客户端的模拟登陆和web上的有区别,区别就是教务网站爬取某个页面的时候时间非常长,ajax 肯定会超时,那我就想让服务端完成抓取后主动推送给客户端,所以又自学了一下 socketio ,费了很大的劲查到了通知单个用户的api ,这个连官方文档都没有写的,以及在不同的文件代码中去通知socketio里的事件,网上也没有查到过相关的资料,就连js群里也没讨论出方案,但是自己却弄出来了。 我觉得这样的收获更有意义,实战过了,对回调,异步这些理解又不一样了。…