《javascript语言精粹》读书笔记四

第七章 正则表达式

正则表达式是处理字符串的最强道具,没有之一。

通过正则表达式,我们可以非常简便的对字符串进行各种操作,这里就对此就不对这章进行总结,之后对正则表达式进行一次专门的总结。

第八章 方法

‘+’运算符在较新的浏览器中,进行过较多的优化,会对该运算符进行优化,比array.join函数运行速度要快的多。

array

Array.concat和Array.slice函数可以生成新的数组。

Array.shift函数通常比pop速度要快。

在使用Array.sort回调函数中,默认会将数组元素当做字符串进行比较。同样,该方法是不稳定的(其方法稳定性根据不同的浏览器实现不同),使用sort().sort(),这样的链式操作,是无法获得稳定的排序,所以,应该避免使用sort函数的链式操作。

Array.unshift方法将返回新数组的长度,而ie6浏览器对unshift函数的实现有错误,总是返回undefined。

number

number.toFixed方法和number.toPrecision方法的差别在于,toFixed方法支持的参数值在0~20,而toPrecision函数支持的参数范围为0~21。

number.toString函数的参数代表进制,默认为10,可以给他设定为任意数字,当然通常设定为整数,通过这个方法可以很简单的生成随机数,比如Math.random().toString(36).substr(3),即可生成一个随机数。

regexp

regExp.exec方法虽然强大,但是也是最慢的函数,他会使用前向匹配的技术,不断的重新扫描已扫描过的字符串,当有g这个修饰符的时候,其性能会进一步降低。

regexp.text方法虽然简单,但是是最快的函数,不要对他使用g标识,因为没有用。

string

string.match方法会对一个正则表达式进行匹配,如果表达式没有待用g标识,那么他的效果和regexp.test相同,如果他带有g标识,那么它生成一个包含所有匹配(非捕获分组之外)的数组。

如果string.replace方法在当第二参数是字符串,那么字符$有特别的含义,具体如下:

美元符号序列 替换对象
$$ $字符的转义
$& 整个匹配的文本
$number 分组捕获的文本
$` 匹配之前的文本
$’ 匹配之后的文本

而当第二个参数为函数时,其参数为 ($&, $1……$9)的排列。

string.split方法有第二个参数,用于限制返回数组的大小。当第一参数为正则表达式时,将会把来自分组捕获的文本包含到分割后的数组中。同时,ie8之前的浏览器会在输出数组中排除空字符串

string.toLocalLowerCase,主要用在土耳其语上,因为在土耳其语中‘I’转义为‘l’而不是i。

第九章 代码风格

优秀的程序拥有前瞻性的结构,它会预见未来可能需要的修改,而又不会让其成为过度的负担。

注意把{放在一行的结尾而不是下一样的开头,因为它会避免js的return语句中一个可怕的设计错误。

努力保持注释是最新的,错误的注释甚至比没有注释更加糟糕。

当程序不能自我说明的时候,需要编写注释,注释必须时有意义的,显而易见的代码无需注释。

代码中应该更多的使用行注释,块注释往往用于正式的文档记录和注释。

对于脚本应用和工具库,我只使用唯一一个全局变量。每个对象都有自己的命名空间,以方便管理代码。

更多编码风格可以参见第五部分

最后本读书笔记将于第五部分结束,第五部分将总结被本书作者认为是优美的特性,以及毒瘤和糟粕,同时给出个人总结的javascript代码编写规范ppt。

更多内容请查看zakwu的小站

时间: 2024-10-12 18:31:27

《javascript语言精粹》读书笔记四的相关文章

《高效能程序员的修炼》读书笔记四

第一章第三节:如何培养写作习惯 -------------------------------- 我个人一直坚信要成为一名优秀的程序员,其实和写代码是没有多大关系的(刚好本书作者也是这样的想法).当然,作为一名程序员的话,具有一定水平的技术能力还是需要的.但,个人觉得更重要的是良好地沟通技巧. 本书作者的合伙人Joel Spolsky有过这样一段话: 杰出的程序员跟勉强过得去的程序员之间的差别,不在于他们掌握了多少种编程语言,也不在于他们谁更擅长Python或Java.真正的关键是,他们能不能把

读书笔记--《高效能程序员的修炼》

  初次邂逅...... 最近小编抽空看了一本书,书的名字叫做<高效能程序员的修炼>,从这本书的名字就能看出来,软件开发远不只是写代码那么简单,你要学会的是高效能的工作,这让小编想到了去年读过的一本书<高效能人士的七个习惯>,有兴趣的小伙伴可以看看哦,受益匪浅,<高效能程序员的修炼>这本书从人文角度而非技术角度去阐释了作为一个程序员,应该具备的基本素质,所以小编在看这本书的过程中,感到非常的有共鸣,通俗易懂,又很贴近小逼啊工作和生活中的实际, 俗话说,有一千个读者,就有

高效能程序员的修炼—第一次读后感

高效能程序员的修炼-第一次读后感 最近利用在地铁上的时间看完了<高效能程序员的修炼>发现自己还是存在的很大的不足之处,或者说成为程序员就需要不停的学习,而我在一段时间很自满以为没有自己不能解决的问题,直到跳出了那个城市来到了北京才发现自己不过是一个很菜的菜鸟,在这里我那点知识根本是不够用的额,我突然发现了如果这么下去我们之间的差距就会变得很大,然后么我就每天花一点时间研究一些深入的东西,发现以前的好多东西站在现在的角度还是有很大改进的地方.特别是最近看了这本书,发现人或许就是活到老.学到老,而

高效能程序员的修炼札记:轻重缓急,了然于心

前言:时间过的真快,转眼间五一三天假期就结束了,以前在苏州的时候,会放假7天左右,带着对亲人的思念奔走于苏州和洛阳.如今,想和父母见上一面,倒也变得容易得多了,这让我觉得幸福更加让人珍惜.本篇作为<高效能程序员的修炼>最后一章,也是在讲述幸福是什么,以及如何更好的把握人生. 程序员,你幸福吗 这个话题真是让人有着千丝万缕的情感,说也说不清楚.我觉得我应该感到幸福,因为家庭比较美满,工作相对顺利.然而也总欠缺着什么,虽说谈不上什么人生抱负有待实现,却也心怀"安家立国"之志.

《高效能程序员的修炼》阅读笔记

1.一路向前冲:沿着那条路下去,一定要快.如果有什么东西挡住了你的去路.....绕开它! 2.第一条原则:永远都是你的错!甚至在开始出错的地方根本就不是你的代码的时候,也应该首先假定问题出在你的代码里! 一定不要在代码出问题的时候,去怀疑系统或者IDE的问题!因为在所有报告的程序错误中,百分之95都是程序员造成的,只有2%由系统软件,2%由其他软件,1%由硬件造成. 3.避免写注释:你应该总是专注于编写代码,而忘了还有注释这种东西的存在. 4.学会读源代码:不管文档上怎么说,源代码才是最终的真实

高效能程序员的修炼札记:程序员的高效工作场所

前言:最近几天,心里颇不宁静,感觉无所适从.每天沉浸在游戏中,我对自己说,只有跌入谷底,才知道往上爬.在写这篇博文的时候,终于能够从游戏中挣脱出来,尝试着去做出一些改变,再次从Jeff的博文中获取进步的动力. 不知道有伙伴是否和我一样,有的时候对生活感到困惑,不知道自己的奋斗目标,也感觉不到生活的压力,进而产生消极的生活,而这个时候,你们是怎么度过的呢?看到一个"不争气"的自己,你是否会为自己感到失望? 好了,废话就不再说了,努力写出好的博文札记,为自己找回一点点救赎的凭证. 程序员的

高效能程序员的修炼札记:揭露营销伎俩

前言:也许你乍一看题目好像与程序员没有一点关系,程序员又不做营销,但是我觉得还是比较紧贴生活的,看着就感觉发生在自己的身上,很多时候自己都中了营销的伎俩. 谨防九种营销诡计 1.不恰当的比较 我觉得很多时候,确实很奇怪,我在花钱买菜的时候,感觉1块钱要比两块钱便宜的多,而在买衣服的时候,100和200差不了多少,很怪异. 2.利用消费惯性 都说洛阳要比苏州的消费低,但是自从回到洛阳后,还是月光族,信用卡依然刷爆,本月的债依然要下月才够还. 3.免费的诱惑 说起来免费,当然所有国内的人都想起来了3

高效能程序员的修炼阅读

入门 宣扬 "每个人都需要知道如何去编程" (乔布斯说的) 是 一种倒退!举个例子: 马桶堵住了,你不需要特地去学 高级水管工 的课程. 生命中最苦难的是想清楚自己真正要做事情,如果你探索的道路上,决定仍然走上 编程之路,那应该用尽一切方法去学.我的祝福与你同在,当然我的祝福 你听听 就算了,他帮不了你. 绝不要为了学编程而学编程,学编程应该是为了追求快乐 . 我成为程序员是因为我想改变我所玩电脑游戏的规则,而学习编程是唯一的途径. 代码是一种信仰. 善于写作,学会表达,即使没人看 八

高效能程序员的修炼札记:加强代码测试

前言:代码测试,无疑是编程环节中重要一环,重要到什么程度呢?假如治理雾霾就是编程,如果想把雾霾治理好,最最重要的无非就是减少工业污染,而代码测试就是这样,它能够从根源上就杜绝bug的发生.实战经验告诉我,在编程的过程中,当你顺利的把代码敲完毕了,那么及时的跟上一次代码肉眼扫描,以及通过SVN版本库的对比,或者是和你认可的同事进行代码的检测,当你对重要的代码写一小段测试用例后,你会发现,你已经能够修正了大量的bug,如果按照bug10个量记的话,一遍代码测试能够做到7个bug的消除. 与客户患难与

高效能程序员的修炼札记:安全基础,保护用户数据

前言:现如今,各种网站用户安全问题不断爆发,很多用户的密码被网站曝光出来,安全是互联网的一个老生常谈的话题,为什么用户的密码这么容易被破解呢,首先,作为我们开发者来说,我们要想尽办法提高用户数据的安全性,同时保证用户体验效果. 所有网络通信都应该加密吗 很显然随着互联网的高速发展,在作者的眼里,https已经提高了很大的性能,实现ssl的通信已经变得不再让人那么沮丧,那么我们一般的网站可以尝试去使用https通信,不过https需要有ca的认证证书,需要花费一定的金钱,而如果不是CFCA签发的证