一转眼,就从5月跑到9月了,很快就国庆了。不知不觉时间走了那么多,很快这年也会过了。
还差4天,就在新公司呆够半年了。 这半年来,很多学习计划都没有坚持。 这半年来,技术上也感觉没什么进步,但随着加入一些技术群,还有和同事的接触,能感到比以前明显的压迫感,一种担心被淘汰的压迫感。
昨晚继续看了下《javascript高级程序设计》,现在来记录一下昨天看了的内容和收获:
1. 昨天看的是“12章 表格排序”,这里有个sort方法的扩展使用。 sort方法是Array对象的原生方法,可以这样使用:
var arr = ['a','c','b']; arr.sort(); // return ['a','b','c'] ;
一般sort方法用于字符串时是最准确的,若不加修改,就用于数字的排序,可能会出错,因为sort方法会默认把数组元素当字符串排序,
那么当出现1,123,2这样的数组时, 123会排在2前面。
而sort方法是可以接受一个函数类型的参数的,这个参数需要接受两个参数,假如是a和b,如下:
function compare(a,b) { return a-b; } var arr = [1,123,2,234]; arr.sort(compare); // return [1,2,123,234];
通过以上的方法,可以正确的对数字数组进行排序。
当然,如果只是到此为止,那也没什么好写的,我看的那一章,是对表格排序,看的小节里说的是对对象的排序,也就是tr对象的数组。
具体代码就不敲了,因为sort方法可以传入自定义的函数,所以函数也就可以选择用数组对象中的某些属性进行排序。
这个特点可以进一步使用在对json数组的排序或其他情况下。
2. 函数生成器。
说的是用闭包,通过一个参数,自动生成sort方法中需要用到的排序函数(传入参数生成按某列进行排序的比较函数)。这样对闭包的用法用得比较少。感觉很不错。
--2012.09.09