js函数
函数是第一类对象
对象能做的任何一件事情,函数也都能做。函数也是对象,唯一的特殊之处在于他是可调用的,即函数会被调用以便执行某项动作。
回调函数
用法案例:js排序——使用比较器排序
sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。
语法:array.sort(fun);参数fun可选。规定排序顺序。必须是函数。
注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。
如果想按照其他规则进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
简单点就是:比较函数两个参数a和b,返回a-b 升序,返回b-a 降序
//注:原数组发生改变
函数作为对象
我们可以给函数添加属性。
存储函数
可以在函数属性中存储另一个函数用于之后的引用和调用。
自记忆函数
创建一个缓存(记忆)。
函数定义
函数声明和函数表达式(最常用的两种方式)
立即函数
eg:(function(){})(3)
箭头函数
(param1,param2)=>{
}
如果没有return语句那么就是返回值就是undefined。
剩余参数(ES6)
剩余参数以...作为前缀
默认参数(ES6)
由于JavaScript不支持函数重载,所以采用默认参数。
es6中创建默认参数的方法是为参数赋值。
在es6之前,则需要用typeof判断参数是否为undefined。