第九章节

  本章节不再介绍知识点,而是作者在提倡大家培养良好的编码习惯,使用Good parts of JS,避免Bad parts of JS。它是一篇文章。

  本文的1-3段阐述应用在开发过程中总会遇到需求更新,BUG的修改,代码的维护等。而在这些过程中保持代码没有任何错误是一个非常挑战性的工作,所以在日常开发时必须严格要求自己,编写阅读性较高,可维护较高的代码,使用”strict”模式编写JS代码。

  本文的4-8段阐述style在开发过程中的作用性,优秀的编码风格会导致代码更容易阅读,也更容易理解,这样更容易在其基础上修改或进行优化。

  其实公司一般都采用统一的代码风格,以前遇到过几千行JS的代码,真看的让人头大,而且代码变量很容易重复,也很容易出错,JS代码是有一处错误不会继续往下运行的,这导致在其基础上编写或维护造成一种恐惧感,有的甚至你还没有开始写,只是简单的运行几次,代码就报错了,那你改不改,改的话需要读懂所有的JS,了解所有的这些需求,不改吧,怎么到你手里就出错了,锅从天而降,无奈。

  后续的部分都是介绍书籍作者保持的优秀代码风格。

  1. 块缩进使用4个空白字符。
  2. 把一条statement语句放在一行,尤其是++,--这些。
  3. If和while包含{},尤其是if,紧跟的一条statement才是逻辑块,之后的statement都是独立的,与if没有任何关系。
  4. {}不另起一行,而是 { 与代码在一行。这个因人而异,只不过代码行数会增加
  5. 代码必须写注释,而且修改代码,对应的注释也必须修改。
  6. 由于JS没有块作用域,所有的变量定义在函数的开头。
  7. Switch,case语句中case必须有break。
  8. 使用一个全局变量代表一个应用或者JS的代码库,常见的优秀的框架都是如此,jquery,easyui等。

第十章节

  本章是本书的最后一章,和第九章一样,它没有知识点内容,而是一篇文章,阐述了作者编写本书的缘由,以及他的观点。

  本章1-3段介绍作者编写此书的缘由,最初是被邀请为《Beautiful Code》一书写一部分内容。作者之后便尝试去发现JS中的Beautiful features,首先想到的就是在开发JSLint编译器的工作经历,后来确实内容过多,而原书只允许他写30-40页,所以他自己打算出本书。

  本章第四段是作者在《Beautiful Code》一书中的部分内容,这些都是JS精华部分。第一,function扮演构造器的角色,同时扮演类的角色;第二,对象可以动态的添加和删除属性;第三,创建对象时使用字面量,例如对象,数组。

  本章第五段作者描述除上述精华部分之外,JS还需要添加一些新的功能,例如添加PI常量,不保留关键字,添加块作用域。

  后续部分作者思考为什么JS语言的开发者没有他这样的想法,反而是不断的去提升JS语言的功能,增加许多新特性。新特性一方面浪费开发者的精力,需要测试去验证它的正确性,另外一方面学习者(程序员XX)也需要更多的精力去学习。一门优秀的语言不在乎它功能的多少,而在于它功能中精华部分的占比。

个人感受

  从我个人的学习和实践经验来看,是完全赞成和支持作者的。JS语言与Java语言比较,它是很小的,它的用途是明确的,就是为了将静态页面转换为动态页面,所以Client-JS部分的内容是JS的核心。

  而Java,它的方向就很多,分为JVM;基础知识J2SE,J2EE,J2ME;衍生出来的很多框架,尤其是以开源组织Spring,Apache为代表,不得不吐槽框架是真的多;其他附加的一些基础知识,UML,设计模式,数据结构,操作系统,网络,面向对象设计等等,虽然这些不是Java独有的,但是也是必须学习的。

  两者从实践角度,前端大部分都基本在操作HTML文档,监听事件,调CSS样式等等这些,而后端确实太简单了,学些API,或者了解业务逻辑,抄别人代码,反而是理解业务逻辑是最难部分,但是深入学习,你会发现Java不是你看一两本书就会的,要求你一两年精通Java,研究Java源码啊,这些估计都不是自己学习,自己的话就会感觉到难度了。相对Java,JS比较简单。

  学习和实践感受是不同的,实践会发现前端稍微复杂一些,学习时会发现后端比前端复杂很多。

  至此本书内容已基本结束,只剩余一些附录。

前端——语言——Core JS——《The good part》读书笔记——第九,十章节(Style,Good Features)的更多相关文章

  1. 前端——语言——Core JS——《The good part》读书笔记——初篇

    本书是一本经典,优秀的JS书籍. 目的 在书籍中作者多次提及本书的目的,让读者去发现语言中的精华部分,避免糟粕部分,提高代码的编写质量.简述为取其精华去其糟粕. 本书的内容只涉及到Core JS部分, ...

  2. 前端——语言——Core JS——《The good part》读书笔记——第一章节(Good Parts)

    本章是引言,有四个小节,具体内容如下: 第一小节 第一小节介绍作者的观点,作者编写本书的目的. 原文:I discovered that I could be a better programmer ...

  3. 前端——语言——Core JS——《The good part》读书笔记——第四章节(Function)

    本章介绍Function对象,它是JS语言最复杂的内容. Java语言中没有Function对象,而是普通的方法,它的概念也比较简单,包含方法的重载,重写,方法签名,形参,实参等. JS语言中的Fun ...

  4. 前端——语言——Core JS——《The good part》读书笔记——第五章节(Inheritance)

    本章题目是继承,实质上介绍JS如何实现面向对象的三大特性,封装,继承,多态.本章的最后一个小节介绍事件. 与Java语言对比,虽然名称同样称为类,对象,但是显然它们的含义存在一些细微的差异,而且实现三 ...

  5. 前端——语言——Core JS——《The good part》读书笔记——第七章节(正则)

    本章介绍正则表达式的内容.正则表达式是一门独立的语言,它拥有自己的语法规则,在学习本章之前需要了解基本的语法规则. 正则表达式是通用的,意味着同样的语法规则可以适用于不同的编程语言,相同的正则表达式在 ...

  6. 前端——语言——Core JS——《The good part》读书笔记——第三章节(Object)

    本章介绍对象. 在学习Java时,对象理解为公共事物的抽象,实例为具体的个例,对象为抽象的概念,例如人为抽象的概念,具体的个例为张三,李四. Java对象种类多,包含普通类,JavaBean,注解,枚 ...

  7. 前端——语言——Core JS——《The good part》读书笔记——第六章节(Arrays)

    本章介绍数组的内容,Java中的数组在创建时,会分配同等大小的内存空间,一旦创建数组的大小无法改变,如果数据超过数组大小,会进行扩容操作.并且数组的元素类型在创建时必须是已知的,而且只能存放相同数据类 ...

  8. 前端——语言——Core JS——《The good part》读书笔记——第八章节(Methods)

    本章介绍JS核心对象的方法.这些对象包括Array,Function,Number,Object,RegExp,String.除这些常用的核心对象还有Date,JSON. 本章更偏向于API文档,介绍 ...

  9. 前端——语言——Core JS——《The good part》读书笔记——附录三,四,五(JSLint,铁路图,JSON)

    1.JSLint 本书的JSLint部分只是一个引言,详细了解该工具的使用参考http://www.jslint.com/ 2.铁路图 在本书中使用过的铁路图集中放在这部分附录中,其实读完本书之后,没 ...

随机推荐

  1. [CF527D] Clique Problem - 贪心

    数轴上有n 个点,第i 个点的坐标为xi,权值为wi.两个点i,j之间存在一条边当且仅当 abs(xi-xj)>=wi+wj. 你需要求出这张图的最大团的点数. Solution 把每个点看作以 ...

  2. Java后端知识体系及路线【最新秘籍】

    第一层(基本语法)   第一层心法,主要都是基本语法,程序设计入门,悟性高者十天半月可成,差一点的 3 到 6 个月也说不准.如果有其他开发语言的功底相助,并且有张无忌的悟性与运气,相信第一层只在片刻 ...

  3. 温故知新的错题训练:Coin game

    传送门:http://192.168.173.163/JudgeOnline/problem.php?cid=1244&pid=1 输赢规则:无法再放下硬币的人就输. 博弈论的基本假定:他俩都 ...

  4. Mac使用pip命令安装selenium包报错解决方法

    1.使用命令:  pip install selenium 2.换成命令: python -m pip install selenium 即可成功安装

  5. spring aop使用,spring aop注解,Spring切面编程

    ================================ ©Copyright 蕃薯耀 2020-01-21 https://www.cnblogs.com/fanshuyao/ 一.第一步, ...

  6. mybatis-plus - TableInfo

    在前面 的 inject() 方法中, 调用了一个 TableInfoHelper.initTableInfo(builderAssistant, modelClass) 方法, 来获取 表信息: T ...

  7. 10.3.4参数绑定 bind

    Count_if算法,类似find_if,此函数接受一对迭代器,表示一个输入范围,还接受一个谓词,会对输入范围中的每个元素执行.Count_if返回一个计数值,表示谓词有多少次为真.    使用bin ...

  8. Git - 08. git branch

    概述 简单描述以下, git branch 讲解的目的, 只是方便新手入门, 基本都是最简单的操作 所以东西可能不全 一是 我不理解 二是 有的东西出现, 可能会让新手产生误解 准备 os win10 ...

  9. 自己动手系列----使用数组实现一个简单的Map

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同.Java 语言中提供的数组是用来存储固定大小的同类型元素. 这里提一下,数组的优缺点: 优点: 1. 使用索 ...

  10. LED Decorative Light Supplier - LED Neon Application: 5 Advantages

    In the past 100 years, lighting has gone a long way. LED decorative lighting is now designed to meet ...