函数参数的校验
/**
* @判断参数是否为数字类型
* @参数,一个参数
* @返回值, 如果参数是数字类型返回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)
回调函数
将函数作为参数传给另一个函数
递归函数(了解)
-
递归概念
-
尾递归写法
-
案例-求和
-
案例-斐波那契数列
-
将来,数组讲完之后,多维数组拍平
-
数组和对象的深拷贝