2017年8月3日
摘要: 排序算法 比较的过程必须通过函数抽象出来。通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。 JavaScript的Array的sort()方法就是用于排序的, 阅读全文
posted @ 2017-08-03 22:33 冰域 阅读(255) 评论(0) 推荐(0) 编辑
摘要: filter filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。 和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。例 阅读全文
posted @ 2017-08-03 22:27 冰域 阅读(454) 评论(0) 推荐(0) 编辑
摘要: map 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: 2 reduce 再看reduce的用法。Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这 阅读全文
posted @ 2017-08-03 22:10 冰域 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 高阶函数 JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 阅读全文
posted @ 2017-08-03 21:43 冰域 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 方法 在一个对象中绑定函数,称为这个对象的方法。 在JavaScript中,对象的定义是这样的: var xiao = { 'name':'xiaoxiao', 'birth':1992 } 但是,如果我们给xiao绑定一个函数,就可以做更多的事情。比如,写个age()方法,返回xiao的年龄: v 阅读全文
posted @ 2017-08-03 21:40 冰域 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 全局作用域 不在任何函数内定义的变量就具有全局作用域。实际上,JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性: 因此,直接访问全局变量course和访问window.course是完全一样的。 你可能猜到了,由于函数定义有两种方式,以变量方式 阅读全文
posted @ 2017-08-03 20:49 冰域 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 由于JavaScript的函数也是一个对象,上述定义的abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量。 这种方式下,function (x) { ... }是一个匿名函数,它没有函数名。但是,这个匿名函数赋值给了变量abs,所以,通过变量abs就可以调用该函数。 abs( 阅读全文
posted @ 2017-08-03 20:38 冰域 阅读(252) 评论(0) 推荐(0) 编辑