这本书是我希望每一个能来面试的前端都读一读的,或者懂得里面介绍的内容的。
这本书主要讲了两部分内容:作用域、对象原型。
不同于其他只书籍里是介绍js里面作用域是什么情况,怎么使用等等这些内容,这本书从代码解释执行的角度详细的讲解了js中关于作用域理解的各种问题。 比如下面的代码:
foo(); foo1(); function foo() { console.log(a); var a = 1; } var foo1 = function() { console.log(a); var a = 2; }
上面代码的执行结果是什么呢?如果不知道的话建议去看下这本书。这只是其中一小部分,里面还有很多小的知识点。
简单来说知识代表不了能力,但是掌握知识越多,对于能力的发挥越有帮助。
作用域的作用就是限定某个变量(函数),在什么阶段能否被调用到,以及不同作用域之间同名变量进行相互隔离,其实就是定义调用哪个。
js在作用域的处理这块感觉有点复杂,在其他语言里并没有这么多的坑坑绕儿。
第二部分关于对象原型也是比较重要的。不理解这些,很难写出结构清晰的代码。且不说面向对象的代码。无论是模仿传统面向对象语言的方式来实现基于类的代码结构的编写,还是说按照基于js特性的,组合复用的方式来实现代码复用,需要掌握的内容都是一样的。
面向对象是必须掌握的一种编程思路,至于实现的时候如何做,那就是不同的语言有不同的处理方式。这里主要是针对如何在js里实现面试对象的思想。
相对于the5fire之前熟悉的Python来说,js里面确实有太多神秘的东西(神秘未必是个好词),稍不留神就容易掉坑里,因此相对于写Python代码来说,js的心智负担会稍微中一点,可能很多一开始就在写JS的同学觉得没有那么复杂,这可能是你不熟悉js或者你已经掉坑掉的麻木了(太熟悉js了)。
- from the5fire.com微信公众号:Python程序员杂谈