函数将一些功能或语句进行封装,为的是方便再次实现这个功能时,去调用这些语句。

函数的定义与调用

//函数的声明
function f(a,b){
    return a+b
}
//函数的调用
f(1,2)

//函数定义完后,立即执行
(function ( ) {
    console.log('1111')
})();
//其中,()之前的为函数的声明;()为调用,结果为1111

//绑定事件。由事件调用
<div>
    <div id="btn" style="cursor: pointer;font-size: large;">▶️点我 有惊喜</div>
    <script>
        let btn = document.getElementById("btn")
        btn.onclick = function () {
            alert('嘿 你点了我一下')
        }
    </script>
</div>
▶️点我 有惊喜

函数的形参与实参

实参和形参的个数不匹配时,调用函数时,解析器也不会检查实参的数量。
1️⃣ 如果实参的数量多余形参的数量,多余实参不会被赋值。
2️⃣ 如果实参的数量少于形参的数量,多余的形参会被定义为 undefined。表达式的运行结果为 NaN。

函数的 continue、break、return

continue 跳出当前循环的本次循环
break 跳出当前循环
return 退出本函数
1️⃣ 如果return语句后不跟任何值,就相当于返回一个undefined
2️⃣ 如果函数中不写return,则也会返回undefined
3️⃣ return 只能返回一个值。如果用逗号隔开多个值,则以最后一个为准。

函数与方法

对象的属性是函数时,那么,这个函数被称为该对象的方法。

函数的内置对象-arguments

所有函数都内置了一个 arguments 对象(只有函数才有 arguments 对象),用于存储传入的所有实参。所以,当我们不确定有多少个参数传入时,可用 arguments 来索引。

function add(a, b, c) {
    console.log(arguments[3])
    return a + b + c;

}

console.log(add(1, 2, 3, 4))
//4
//6

arguments的展示形式是一个伪数组。因此具备伪数组的特征:
1️⃣ 可以进行遍历,具有数组的 length 属性。
2️⃣ 按索引方式存储数据。
3️⃣ 不具有数组的 push()、pop() 等方法,不能修改数组。

属性或方法 解释 备注
arguments.length 实参的长度 console.log(arguments.length)
arguments.callee 正在指向的函数 递归函数中使用
arguments[0] 函数第一个实参 只能修改实参 arguments[0] = 99