聊聊Javascript程序员和必备技能

作者 FarLee 2016年7月22日 21:25:20   ‖浏览(1,517)

大部分Web后端开发人员可能多多少少都会接触到一些前端的东西, 从最基本的html到javascript等, 也会偶尔修改一些程序; 但当有人问,你是全栈工程师吗?
或者更小范围地问, 你会javascript吗? 这时候估计大部分朋友心里会咯噔下, 并没有一个”会”于”不会”的标准(了解,熟悉还是精通, 初级,中级还是高级). 这样我们就聊下高级Javascript程序员需要达到什么程度.

简单地从技能层面来说, 如果对 javascript闭包, 原型继承, js模块化设计, Javascript事件机制这些关键词都很熟悉的话, 若算不上高级至少也是有一些功底了.

从另一个层面来说, “会”仅仅表示会用, 会用JS或jQuery等框架实现功能效果, 出错时知道如何调试自己的js代码;
懂则更进一步, 懂得它的实现原理, 知其所以然; 精通则是对Javascript这门语言的特性了然于胸, 甚至对其有所超越的理解;

有网友总结, 会用原生javascript的语法, 会用jQuery, Bootstrap, YUI 等框架, 会简单的debug技能, 是第一层次的JS程序员;
第二层次则会使用JS原生方法完成jQuery等框架实现的功能,熟悉ECMAScript标准, W3C-DOM, 不同内核浏览器解析的差异;
第三层懂得jQuery, Prototype等框架,JSON的实现原理, 以及他们框架设计的精妙所在;
第四层精通Javascript, 从javascript语言层面, 知道好处和坏处在哪里, 了解如《Javascript: The Good Parts》这本书中所述的优点;

总结下就是Javascript程序员单纯了解一个类似jQuery的框架是完全不够的, 相反沉着于框架本身会阻碍我们看到原生js背后的真相.
比如可以列举下, 一个知道JS的程序员它知道:

  • 1. 嵌套函数的变量作用域, var如何用于避免全局变量冲突, javascript闭包中的作用域是怎么样的;
  • 2. JS构造函数, prototype 已经new 一个对象是如何工作的; 什么时候该用原型继承, 什么时候用闭包封装;
  • 3. ECMAScript4 的新特性怎么兼容旧的浏览器;
  • 4. 浏览器和代码之间的控制流, 同步和异步的执行;
  • 5. 关于数据类型, undefined, Number, typeof, in, hasOwnProperty等.

来说兩句