`
Xinaction
  • 浏览: 92045 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

说说掌握JavaScript语言的思想前提

阅读更多

(转载,原文作者:lifesinger )

      说明:这是今年三月份发在原Blog上的文章。来淘宝后,原Blog所在服务器出了故障,数据丢了不少。现在这个Blog是全新搭建的,数据也就懒懒地一直没转移过来。今天为了程序员杂志的稿子头疼,于是在Google上瞎逛,无意搜索到这篇老文章,欣然释然,小豆腐块用这种话题最适合不过了^o^


图1. 可怜的JavaScript(摘自《Practical JavaScript DOM Scripting and Ajax Projects》)

      无论是公司的同事还是外界的程序员朋友们,大部分人对JavaScript的高级应用不甚了解,已有的知识架构里会认为JavaScript仅仅是一门脚本语言,其作用是给页面做一些锦上添花的效果,比如表单验证等等。潜意识里也就不会用面向对象的思想去编写JavaScript代码,也很少会去深入了解prototype, context, scope chains, closures等概念。这导致一个传统的脚本编写习惯:

  1. 在html页面或js文件里写很多functions
  2. 在需要用到function的地方直接调用

     上面的做法是面向过程的,看似很自然很不错,但实际上存在很多弊端。在团队协作中,会增加代码冲突,可复用性和可维护性都很低,是一种应该被淘汰的旧式编码习惯。

对于JavaScript的学习,可能最重要的还是要从思想上认识到JavaScript不是玩具语言。JavaScript的作用远不止增加点表单验证,我们可以看看GMail、看看Google Maps,如果开发者们没有对JavaScript足够尊敬,是不大可能写出如此优秀的Web应用的。

JavaScript门槛很低,但门槛低并不意味着容易掌握。一定程度上,JavaScript的入门容易以及其极大的灵活性,使得要掌握JavaScript变得很难(这和Ruby类似,Ruby也是一门入手容易得道难的语言)。从纯语言上讲(不考虑框架类库),我个人的经验是,学习JavaScript比学习Java更具挑战性。我们大多习惯了传统的面向对象表述方式,一定程度上甚至会认为类、封装、继承等概念都得像Java、C++那样,可能都从来没想过没有class, extend, override等概念也能面向对象。JavaScript的面向对象打破了这种思想上的禁锢:世界是多样性的,条条大路通罗马。夸张一点说,深入学习 JavaScript,更多的是一种思想上的挑战,能活跃思路,扩大视野,甚至改变对世界的看法。

     上面所说的这些,无意于夸大JavaScript的作用和难度。每个人都或多或少的会强调自己所学的知识,但在这里,我希望自己能很客观的传递一个观点:无论什么语言,想要精通,都很不容易;如果想学习某门语言,就得从思想上尊敬这门语言,在尊敬的基础上去学习,才有可能掌握这门语言的精髓。除了JavaScript,再举两个例子:

      一是CMD脚本。dir, cd, for, tree多容易,接触过不少非常想精通CMD脚本的人,这些人会花一段时间去努力学习,但绝大部分最后还是连一个简单的备份脚本也不会写。抛去术业有专攻等各种理由不谈,这些人最后无法精通CMD脚本很大程度源于他们自身的心魔:潜意识里认为CMD很容易,不“尊敬”它,因此实际行动上也就不会真的把心思放在学习CMD上。

      二是HTML语言。经常能听到这样的话:HTML多容易,花个一两天也就会了,我自己也曾这么认为。但随着使用HTML经验的增长,我慢慢感觉到,对于Web前端开发来说,HTML可以说是最难的。HTML4.01规范中的91个元素就如汉字里的2500个常用字一样,我们读完小学后对常用字应该就都认识了,但要用汉字写篇优秀的文章,却并不容易。HTML也是这样,大部分宣称HTML很容易的开发者,往往只停留在认识body, p, form, table, div, ul等标签上,对于dl, legend, sub, caption等并非生僻的标签甚至都不认识。在常用字还认不全的情况下,宣称HTML很容易,真的很狂妄。(HTML的难度在于如何利用标签构建出结构良好且富含语义的代码,就如写作文一样,不能认为认识几个字就自信能妙笔生花。)

      总之,语言无贵贱难易,要从思想上尊敬重视一门语言,才有可能驾驭它,否则,将永远游离在专业程序员的宝殿之外。


图2. JavaScript获得了应有的尊敬(摘自《Practical JavaScript DOM Scripting and Ajax Projects》)

上面是老文,辞句上稍微有些修改。今天再读,补充一点最近的想法

      对JavaScript而言,首先我们要意识到它的强大。目前各个浏览器争先恐后地优化提高JS引擎的性能,已经昭示出JavaScript强大的生命力和非常美好的前景。从心魔中去除对脚本语言的鄙视,尊重JavaScript, 对我们这些已经专职从事前端开发的程序员来说,早已不是问题。但我们还需宣传布道,要让后台开发程序员们也能意识到这一点,这还有漫长的路要走。

      上面是一方面,还有一方面是:“我们需要关注JavaScript如何使用,或许更需要关注JavaScript能做什么。” 这是Aaron Gustafson在JavaScript渐进增强一文中非常强调的一点。精通某门语言,还意味着要清楚这门语言在哪些地方不适合使用。任何一门语言都不能滥用,庖丁解牛,杀猪砍肉,不同的场合需要用不同的刀。每个优秀的屠夫都有自己的一套刀具,并不是像关羽一样抗一把青龙偃月刀就能闯遍天下。

      先说这么多,欢迎讨论。

分享到:
评论

相关推荐

    说说掌握JavaScript语言的思想前提想学习js的朋友可以看看

     对于JavaScript的学习,可能最重要的还是要从思想上认识到JavaScript不是玩具语言。JavaScript的作用远不止增加点表单验证,我们可以看看GMail、看看Google Maps,如果开发者们没有对JavaScript足够尊敬,是不大...

    Javascript语言参考大全

    JavaScript是一种广泛应用于Web开发的脚本语言,它主要在客户端运行,为网页添加交互性,增强用户界面。这个压缩包包含三份中文的JavaScript参考资料,分别名为“Javascript语言参考大全.CHM”、“JavaScriptHelp_...

    JavaScript语言精粹 中文高清PDF

    《JavaScript语言精粹》是一本深受开发者欢迎的权威书籍,旨在深入探讨JavaScript这门重要的编程语言,帮助初学者和有经验的程序员掌握其核心概念和最佳实践。这本书以中文高清PDF的形式提供,使得读者可以方便地...

    《JavaScript语言精粹》.pdf

    《JavaScript语言精粹》这本书是深入理解这一语言的宝贵资源,它涵盖了JavaScript的核心概念和技术,旨在帮助读者掌握这门语言的精髓。 在描述中提到的"JavaScript语言精粹 包含pdf 与 epub"表明,这本书提供了两种...

    JavaScript语言精粹.pdf.zip

    这本书《JavaScript语言精粹》无疑是深入理解和掌握这门语言的重要参考资料。它旨在帮助开发者掌握JavaScript的核心概念,提高编程技能,并理解如何写出高效、可维护的代码。 《JavaScript语言精粹》可能会涵盖以下...

    JavaScript语言精粹pdf

    通过阅读《JavaScript语言精粹》,读者不仅能掌握JavaScript的基本语法和高级特性,还能了解到最佳实践和常见陷阱,从而提升编程技能,成为一名更优秀的JavaScript开发者。书中的书签将帮助读者快速定位到重要章节,...

    JavaScript语言精粹 修订版 中文高清PDF

    这本书深入浅出地介绍了JavaScript的精髓,帮助读者掌握这门强大的脚本语言,尤其对于前端开发人员来说,是提升技能的必备参考资料。 在JavaScript的世界里,了解基础语法是至关重要的。书中首先会介绍变量、数据...

    JavaScript 语言参考_javascript_js_

    JavaScript,作为一种广泛应用于Web开发的脚本语言,是互联网上实现动态交互的重要工具。它主要在客户端运行,...通过深入学习并实践这本书中的内容,你将能熟练掌握JavaScript,从而更好地进行网页开发和交互设计。

    JAVASCRIPT语言精髓与编程实践精简版动态函数式语言精髓最新版本

    《JavaScript语言精髓与编程实践》精简版 动态函数式语言精髓 本书讲述了JavaScript的语言实现与扩展,主要包括以下三个方面的内容:...本书适合于有编程经验的、想学习和掌握JavaScript的语言实现与扩展知识的开发者。

    JavaScript语言精粹.源代码

    《JavaScript语言精粹》是一本深受开发者喜爱的经典书籍,它深入浅出地讲解了JavaScript的核心概念和技术,帮助读者掌握这门语言的精髓。下面,我们将详细探讨这本书中涉及的一些重要知识点,并结合源代码"example_...

    JavaScript语言精粹(修订版)

    "JavaScript语言精粹(修订版)"是一本深入探讨JavaScript编程精髓的书籍,旨在帮助开发者掌握其核心概念、最佳实践以及常见陷阱。这本书对初学者和经验丰富的开发者都具有很高的价值,能够提升对JavaScript的理解和...

    JavaScript 语言精粹(修订版,文字版+扫描版)

    本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。 雅虎资深...

    javascript语言精粹(中+英文版)

    总的来说,"JavaScript语言精粹(中+英文版)"这本书是全面掌握JavaScript不可或缺的参考资料,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。通过深入学习和实践,你可以熟练掌握JavaScript,进而开发出...

    javascript语言入门教程javascript语言初学教程

    这个“JavaScript语言入门教程”旨在帮助初学者掌握这门语言的基础知识,为今后深入学习和实践打下坚实基础。 教程首先会介绍JavaScript的基本语法,包括变量声明、数据类型(如字符串、数字、布尔值、null和...

    《JavaScript 语言参考》中文版.chm

    《JavaScript 语言参考》中文版.chm《JavaScript 语言参考》中文版.chm《JavaScript 语言参考》中文版.chm《JavaScript 语言参考》中文版.chm

    javascript语言精粹_修订版带书签.pdf

    JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。"JavaScript语言精粹_修订版带书签.pdf" 这本书是开发者深入理解JavaScript语法、特性及最佳实践的重要参考资料。书中的修订版意味着它...

Global site tag (gtag.js) - Google Analytics