function add(x,y){ //函数,声明提升,可以在函数定义之前调用 return x+y } var add = function (x,y){ //函数表达式,不会提升声明 return x+y } var sum1 = function _sum(x){ //函数表达式不省略名字,也只能在函数内部使用 if (x==1) // if后不能加分号 return 1; return x+_sum(x-1); } // console.log(sum(5)) const counter = function (){ let c = 0 return function (){ return ++c } } c = counter() arr = new Array(1,2,3,4,5) var map = function map(arr,fn){ let newarry = [] for (i in arr) newarry[i] = fn(arr[i]) return newarry } // console.log(map(arr,function(x) {return ++x}))//匿名函数 // console.log(map(arr,x=>++x)) //箭头函数,就是匿名函数,更加简洁 var map = function * (arr,fn){ for(i in arr) yield fn(arr[i]) } let newarr = map(arr,x=>++x) /* 箭头函数:如果一个函数没有参数使用(); 如果只有一个参数,可以省略小括号 多个参数不能省略小括号,且使用逗号间隔 箭头函数返回值:如果函数体部分有多行,就需要使用{},如果有返回值使用return 如果只有一行语句,可以同时省略大括号和return,有return必有{} */ const sum = function (...args){ //[1,2,3] let result = 0 console.log(arguments) //所有的参数,包括位置参数 for (let x in args){ //[[1,2,3]] // console.log(args[x],'~~~~~~~~~`') result += args[x] } return result } // console.log(sum(...[1,2,3,4,5])) // console.log(100+[1,2,3,4]) //1001,2,3,4 const rvalue = (x,y) => {return x,y} console.log(rvalue(5,6)) /* 表达式的值 赋值表达式的值:等号右边的值 逗号表达式的值:最后一个表达式的值 */
JS之函数
猜你喜欢
转载自www.cnblogs.com/harden13/p/9262957.html
今日推荐
周排行