第九章节

  本章节不再介绍知识点,而是作者在提倡大家培养良好的编码习惯,使用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. Wannafly Camp 2020 Day 2A 托米的字符串

    #include <bits/stdc++.h> using namespace std; const int N = 1000005; int n; char str[N]; int a ...

  2. Selenium3+python自动化007-等待时间

    import time 一.强制等待 sleep(秒) 二.显示等待 使WebDriver等待指定元素条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException) 1. 导 ...

  3. SSM项目使用junit单元测试时Mybaties通配符加载Mapper不能正常加载

    个人博客 地址:http://www.wenhaofan.com/article/20181108104133 问题描述 项目使用maven build 以及tomcat run能够正常运行,但是使用 ...

  4. 认识Flow(一)

    Flow 是 facebook 出品的 JavaScript 静态类型检查工具.Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码. 为什么用 Flow J ...

  5. Docker最全教程——从理论到实战(十)

    终于按时完成第二篇.本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续——数据库容器化.本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容 ...

  6. 一点点学习PS--实战七

    本节实战的内容,熟练之前几个实战中的操作: 如反复使用图层调整层中曝光度,色彩平衡,调节图片的色调:反复使用图层样式中的颜色叠加--高斯模糊--添加图层蒙版--渐变工具--不透明度来画影子. 打组(C ...

  7. SharePoint资料

    链接:https://pan.baidu.com/s/1QOSShE02LYKXFtoJ58WCQQ 提取码:dnhs 复制这段内容后打开百度网盘手机App,操作更方便哦 SharePoint 200 ...

  8. 记录 shell学习过程(3) if 的格式

    ] #-e 为检测目录或文件是否存在 !为取反 then mkdir -v /tmp/ echo 'ok' fi if else if [ $USER == 'root' ] then echo 'h ...

  9. oneshot和周期性shot

    计数器的使用,oneshot:时刻. 有误差,日.每一些间隔可以产生周期性shot(多个持续性时刻)

  10. K-means VS K-NN and 手肘法

    1. The difference between classification and clustering. from here. Classification: supervised learn ...