(1)函数的定义:完成特定功能的代码段。
函数定义的语法:
function funName(参数列表){
函数体;
}
函数调用的语法:
funName(参数列表);
注意:
1.函数在定义时函数内部的代码并不会执行,只有在函数调用的时候才会执行函数内部的代码。
(2)函数的作用:在开发中函数可以实现都特定代码的封装,实现模块化开发思想,从而提高代码的可复用性,降低代码的冗余度,提高代码的执行效率.
(3)形参和实参的区别:实参:实际参数,即函数调用过程中提供的数据被称为实参;形参:形式参数,即函数定义过程中提供的参数被称为形参。
注意: 1.形参没有实际的含义,只有当函数调用过程中设置实参以后,形参才能确定具体的数据。 2.实参将数据传递给形参时执行的是数据的拷贝。即形参内部数据的变换并不会直接影响实参数据。
(4)深拷贝和浅拷贝:主要针对引用类型(数组或者对象)的数据
浅拷贝:地址拷贝,即变量中存储的是某一块空间的地址,此时变量通过简单的拷贝操作将地址拷贝给另一个变量,此时两个变量中存储的是同一块空间的地址,其中一个变量修改对应空间的数据,另一个变量也会收到影响。
深拷贝:空间拷贝,即拷贝出一块和原空间一样大小的空间,并且将原空间中的数据拷贝一份到新空间,此时对新空间中的数据执行修改并不会影响原空间的数据。
(5)默认参数:函数在调用过程中如果没有给定实际参数,此时形参会设一个默认值,这样的形参列表被称为默认参数。并且注意形参列表中默认参数与一般需要放在所有必须参数的右侧
(6)函数的返回值:return用来完成函数结束之后需要返回的数据,注意:return关键字是函数调用结束的标志,函数执行过程中return关键词,此时不管return后面是否存在数据,都不再执行。因此return必须出现在函数调用的后面。
(7)函数的嵌套:在函数内部调用另一个函数,该过程被称为函数的嵌套
(8)匿名函数:没有名字的函数。匿名函数通常会定义变量存储该匿名函数,通过变量调用函数。
var timer = null;
btn.onclick = function () {
alert('按钮被点击')
//计时器
timer = setInterval(function () {
//该匿名函数主要用来定义具体的秒表操作
// 修改标签的css样式
mark.style.backgroundColor = getRandomColor();
mark.style.borderRadius = getRandom(0,100)+"px";
}, 10);
}
stop.onclick = function(){
//停止秒表(计时器)
clearInterval(timer);
}
(9)自启动函数:函数定义时整体作为函数的名字直接调用。
(10)变量的作用域:全局变量:定义在函数外边的变量被称为全局变量。全局变量的作用范围:从变量定义开始调整个程序运行结束;局部变量:定义在函数内部的变量,被称为局部变量。局部变量的作用范围:从变量定义开始到函数调用结束。函数调用结束以后局部变量会被计算机自动销毁。
全局变量和局部变量的区别:全局变量在使用过程中无法保证数据的安全性,很容易被外界污染。局部变量只能被当前函数范围,可以保证数据的安全性。因此在开发中只有当多个函数之间需要进行数据共享时才会使用全局变量,其他情况尽量使用局部变量。