JS 函数

107 阅读2分钟

函数的定义

// 赋值式定义
var fn = function () {}
console.log(fn)

//声明式定义
function fn1() {}
console.log(fn1)


/**
*不管函数定义式如何定义的,调用方法永远只有一种
*    语法: 函数名()
*/

函数的调用

// 赋值式定义
    var fn = function () {
        console.log(333)
    }
    
//声明式定义
    function fn1() {
        console.log(666)
    }

    fn()//调用fn
    fn()
    fn1()//调用fn1
    fn()
    fn1()

函数声明式和赋值式的区别

/**
* 函数声明式和赋值式区别
* 
* 1.书写不同
* 2.打印时,声明式 会带上函数名,赋值式没有
* 
* 3.调用时有差异
*     声明式可以在函数定义前  调用
*/

//var fn = function () {}
// function fn1 () {}

  fn1() //111
  function fn1(){
  consols.log(111)
     }

函数的参数

函数的参数是做什么

我们的函数在不写参数的时候,可以正常执行 但!功能相对单一

参数分为两个

形参 函数名后(function) 后面的小括号内容,每书写一个就相当于在函数内部声明一个变量,可以在函数内部调用
实参 调用函数时的小括号内部书写的值,就是实参,行参与实参 为一一对应的关系

行参与实参会一一对应

如果实参数量 少于 形参 那么前面的形参对应接受值,没有对应实参 的 形参 值 为 undefined
如果形参属性 少于 实参 那么会一一对应后 多余的实参 无法通过 参数获取

//    function fn1(a,b){    //相当于 在函数内部创建两个变量  叫做 a 和b ,他们的值由实参决定

    //     console.log(111)
    //    }
    //    fn1(1,2)//111
    //    fn1('aaa','bbb') //'aaa' 'bbb'


    // function add(a,b){
    //     console.log(1,'2')  //12
    //  }


    // function fn(a,b,c){
    //     console.log(a,b,c)
    // }
    // fn(1,2,3) //1---2---3
    // fn(1,3)  //1---3--undefined
    // fn(1)   //1--undefined--undefined

    // </script>
    <script>
        function fn(a) {
            console.log(a)
        }
        fn(1) //1
        fn(1,2) //1
        fn(1,2,3) //1

函数的返回值

语法 :return 需要返回的内容

/**函数默认返回值
*   我们可以不写return 函数会默认在代码最后一行写上 retrun undefined
* 
* 需要写返回值吗
*   什么时候需要返回值
* 
*   返回值的书写 取决于 是否需要得到函数内部某一个变量的值,如果需要 可以使用返回值将其返回,如果不需要我们可以不写
* 
* 
* return
*   具有中断函数执行的功能
*   如果不想中断函数,那么一定要将 return 放在函数的最后
*   除非就是想要通过 return 中断函数的运行
*/

// var sum;
// function add(a,b){
//     console.log(a+b)
// }
// add(1,2)//3
// console.log(sum)
// add(1,'2')//12
// console.log(sum)
        


// function add(a, b){
//     return a + b
// }
// var sum = add(1, 2)
// console.log(sum)