函数参数的校验
/** * @判断参数是否为数字类型 * @参数,一个参数 * @返回值, 如果参数是数字类型返回true,否则返回false */ function isNumber(num){ // 1. 第一版,把条件拆开判断 // 判断num是否是什么数据类型 if(typeof num !== 'number') { console.log('num不是数值类型') return false; } // // 判断num是不是NaN if(isNaN(num)){ console.log('num是NaN!不能参与判断!'); return false; } // // 如果上面两个分支的判断,可以知道num是数字类型,也不是NaN,那么num就是有效数字 return true; // 2. 第二版,只判断num是否是有效数字,可以把条件写在一起 if(typeof num !== 'number' || isNaN(num)){ return false }else{ return true } // 3. 第三版 return !(typeof num !== 'number' || isNaN(num)) // typeof NaN 'number' !== 'number' || isNaN(NaN) }
函数中调用其他函数
function f1(a) { console.log("f1函数"+a*2); } function f3(){ console.log('f3函数'); } // f1,f3在f2中被调用了! function f2(num) { console.log("f2函数"+num); // 调用f1函数, num形参,可以理解为函数内部的局部变量 f1(num); f3() } // 变量可以作为实参 var count = 20 f2(count);
函数参数的默认值
function f1(x,y){ return x*y } f1(10,20) // 当没有给y传实参的时候,y使用默认值1 f1(10)
回调函数
将函数作为参数传给另一个函数
递归函数(了解)
-
递归概念
-
尾递归写法
-
案例-求和
-
案例-斐波那契数列
-
将来,数组讲完之后,多维数组拍平
-
数组和对象的深拷贝