前端——语言——Core JS——《The good part》读书笔记——第九,十章节(Style,Good Features)
第九章节
本章节不再介绍知识点,而是作者在提倡大家培养良好的编码习惯,使用Good parts of JS,避免Bad parts of JS。它是一篇文章。
本文的1-3段阐述应用在开发过程中总会遇到需求更新,BUG的修改,代码的维护等。而在这些过程中保持代码没有任何错误是一个非常挑战性的工作,所以在日常开发时必须严格要求自己,编写阅读性较高,可维护较高的代码,使用”strict”模式编写JS代码。
本文的4-8段阐述style在开发过程中的作用性,优秀的编码风格会导致代码更容易阅读,也更容易理解,这样更容易在其基础上修改或进行优化。
其实公司一般都采用统一的代码风格,以前遇到过几千行JS的代码,真看的让人头大,而且代码变量很容易重复,也很容易出错,JS代码是有一处错误不会继续往下运行的,这导致在其基础上编写或维护造成一种恐惧感,有的甚至你还没有开始写,只是简单的运行几次,代码就报错了,那你改不改,改的话需要读懂所有的JS,了解所有的这些需求,不改吧,怎么到你手里就出错了,锅从天而降,无奈。
后续的部分都是介绍书籍作者保持的优秀代码风格。
- 块缩进使用4个空白字符。
- 把一条statement语句放在一行,尤其是++,--这些。
- If和while包含{},尤其是if,紧跟的一条statement才是逻辑块,之后的statement都是独立的,与if没有任何关系。
- {}不另起一行,而是 { 与代码在一行。这个因人而异,只不过代码行数会增加
- 代码必须写注释,而且修改代码,对应的注释也必须修改。
- 由于JS没有块作用域,所有的变量定义在函数的开头。
- Switch,case语句中case必须有break。
- 使用一个全局变量代表一个应用或者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)的更多相关文章
- 前端——语言——Core JS——《The good part》读书笔记——初篇
本书是一本经典,优秀的JS书籍. 目的 在书籍中作者多次提及本书的目的,让读者去发现语言中的精华部分,避免糟粕部分,提高代码的编写质量.简述为取其精华去其糟粕. 本书的内容只涉及到Core JS部分, ...
- 前端——语言——Core JS——《The good part》读书笔记——第一章节(Good Parts)
本章是引言,有四个小节,具体内容如下: 第一小节 第一小节介绍作者的观点,作者编写本书的目的. 原文:I discovered that I could be a better programmer ...
- 前端——语言——Core JS——《The good part》读书笔记——第四章节(Function)
本章介绍Function对象,它是JS语言最复杂的内容. Java语言中没有Function对象,而是普通的方法,它的概念也比较简单,包含方法的重载,重写,方法签名,形参,实参等. JS语言中的Fun ...
- 前端——语言——Core JS——《The good part》读书笔记——第五章节(Inheritance)
本章题目是继承,实质上介绍JS如何实现面向对象的三大特性,封装,继承,多态.本章的最后一个小节介绍事件. 与Java语言对比,虽然名称同样称为类,对象,但是显然它们的含义存在一些细微的差异,而且实现三 ...
- 前端——语言——Core JS——《The good part》读书笔记——第七章节(正则)
本章介绍正则表达式的内容.正则表达式是一门独立的语言,它拥有自己的语法规则,在学习本章之前需要了解基本的语法规则. 正则表达式是通用的,意味着同样的语法规则可以适用于不同的编程语言,相同的正则表达式在 ...
- 前端——语言——Core JS——《The good part》读书笔记——第三章节(Object)
本章介绍对象. 在学习Java时,对象理解为公共事物的抽象,实例为具体的个例,对象为抽象的概念,例如人为抽象的概念,具体的个例为张三,李四. Java对象种类多,包含普通类,JavaBean,注解,枚 ...
- 前端——语言——Core JS——《The good part》读书笔记——第六章节(Arrays)
本章介绍数组的内容,Java中的数组在创建时,会分配同等大小的内存空间,一旦创建数组的大小无法改变,如果数据超过数组大小,会进行扩容操作.并且数组的元素类型在创建时必须是已知的,而且只能存放相同数据类 ...
- 前端——语言——Core JS——《The good part》读书笔记——第八章节(Methods)
本章介绍JS核心对象的方法.这些对象包括Array,Function,Number,Object,RegExp,String.除这些常用的核心对象还有Date,JSON. 本章更偏向于API文档,介绍 ...
- 前端——语言——Core JS——《The good part》读书笔记——附录三,四,五(JSLint,铁路图,JSON)
1.JSLint 本书的JSLint部分只是一个引言,详细了解该工具的使用参考http://www.jslint.com/ 2.铁路图 在本书中使用过的铁路图集中放在这部分附录中,其实读完本书之后,没 ...
随机推荐
- MariaDB Windows 安装
1.复制安装文件到服务器 2.解压到指定的目录,并创建my.ini: 3.编辑my.ini文件内容 [client] port=3307 [mysql] default-character-set=u ...
- .net Core 配置Centos守护进程Supervisor
声明: 博客引用来源:https://blog.csdn.net/qq_37997978/article/details/83311177建议看原版,更为详细 介绍: Supervisor( http ...
- AE 打开Shp文件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 洛谷P1028 数的计算
https://www.luogu.org/problem/P1028 #include<cstdio> using namespace std; int main(){ ,i,f[]; ...
- TD - 单选框 - RadioButton
基本方法 Html - 默认选中 //checked="true" - 默认选中 <input dojoType="bootstrap.form.RadioButt ...
- (转)git学习教程
转自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
- 在多租户(容器)数据库中如何创建PDB:方法2 克隆本地PDB
基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆本地PDB(从本地其他PDB创建新的PDB) 对应路径:Creating a PDB --> Cloning --> ...
- adb 连接手机
adb kill-server adb start-server 可能会遇到问题华为手机: 有应用遮挡了权限请求界面,设置应用无法验证你的回应 系统导航关闭悬浮球 然后重启adb server ad ...
- 剑指offer 面试题. 二叉搜索树的第k个结点
题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 解: 由于二叉搜索树的中序遍历是升序,所以在中 ...
- c#中convert.toInt32和int.parse()和强制类型转换的区别
string a="123"; int i=(int)a; 这是会出现错误因为:强制类型转换只能转换值类型不能转换引用类型 string属于引用类型 强制类型转换时如果值类型 ...