JavaScript基础05

95 阅读1分钟

函数参数的校验

/**
 * @判断参数是否为数字类型
 * @参数,一个参数
 * @返回值, 如果参数是数字类型返回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)
​

回调函数

将函数作为参数传给另一个函数

递归函数(了解)

  1. 递归概念
  2. 尾递归写法
  3. 案例-求和
  4. 案例-斐波那契数列
  5. 将来,数组讲完之后,多维数组拍平
  6. 数组和对象的深拷贝