不可否认Javascript是现今web端应用的最为广泛的语言,随着java applets的完败,Javascript事实上变成了默认的“Web”语言,而它又是唯一一个所有浏览器都可以识别的语言,我们没有选择只能用Javascript。
可以把Javascript理解为一个干细胞,它还没有发育成一个功能细胞就被开发利用了,所以糟粕占的比重会非常之高。但这恰恰也是这种语言的优点,他给了开发人员最大的自由度,你可以给予它各式各样的养料把它培养成具有自己鲜明的特征的功能细胞,当然你得知道怎么样去掉糟粕,所以Javascript是一门强大的令人惊讶的语言。
Javascript极具表现力,这也是它非常容易入门的原因,但是要学会怎么去培养它却不是那么容易,它采用与其它语言截然不同的继承方式:基于原型的继承;继承有三种方式:类的继承、元类继承、原型的继承。 对于学过C、C++、Java的开发人员面对Javascript时,有一种深深挫败感,因为他们的那一套基于类的继承思想完全不适合于Javascript,所以得从头学起。这就印证了一句话:Javascript易学难精。
我们得从头学习原型这种继承体系。比如原型继承允许建立类的对象后继续修改类的属性,而对象的继承列表中会实时的反映出来该属性,但类的继承是绝对不允许这么做的。
Javascript最为精典的设计就是:函数即是对象。Javascript没有变量的作用域,只有函数作用域,它引入的作用域链的概念,一段程序每执行进入一个作用域就建立一个变量对象保存该作用域下的变量和函数,然后放到作用域链上,当然出这个作用域时就把该变量对象从作用域
链中删除,这就形成了一个动态的执行体系。
Javascript是一种弱类型的语言,所以在编译阶段不会有任何错误提示,但这并不表示我们会付出太多的代价去检测和修复错误。
强类型语言允许编译阶段时检测错误,可查找到错误并不是令我们头痛的错误。相反,弱类型的自由使我们无须建立复杂的类层次,也不用疲于应付类型系统以得到想要的结果。