作者:fdasfwgafaweg | 来源:互联网 | 2023-09-24 18:59
1、定义函数方式一functionmyFunction1(p1,p2){returnp1*p2;该函数返回p1和p2的乘积}方式二varmyFunction2function(p1
1、定义函数
//方式一
function myFunction1(p1, p2) {
return p1 * p2; // 该函数返回 p1 和 p2 的乘积
}
//方式二
var myFunction2=function(p1, p2){
return p1 *p2;
}
//两种方式定义的函数使用起来没有区别
函数的调用
函数中的代码将在其他代码调用该函数时执行:
- 当事件发生时(如当用户点击按钮时)
- 当 Javascript 代码调用时
- 自动的(自调用)
注:
函数执行到return结束,但如果没有执行return,也会返回结果(返回undefined)。
调用函数时填写的实参多了不影响执行,少了,返回值会出问题(比如返回NaN),反正就是都不会报错。
调用函数加了()时,引用的是函数结果,如果不加,引用的是函数对象(返回值是函数的定义)。如:
运行结果:
arguments参数
arguments是一个JS的一个关键字;
代表,函数传递进来的所有参数,是一个数组!
rest
ES6引入的新特性,获取除了已经定义的参数之外的所有参数。
rest参数只能写在最后面,必须用…标识。
function a(a,b,...rest){}
2、匿名函数
匿名函数有两种用法:
匿名函数必须以以上两种方式定义和使用,如果只单独定义匿名函数的话,会报错。
赋值
声明一个匿名函数直接赋值给某变量或事件
window.Onload= function(){
alert('hello');
};
自动执行
定义完成后会自动执行。一般在函数前加一个!(+-~也行),函数结尾加括号(),括号()里面可以填写需要的实参。以下给出几个例子。
//1.使用 !开头,()结尾,结构清晰,不容易混乱,推荐使用;
!function(){
document.write('hello');
}();
//2.用()将匿名函数与调用的()合为一个整体,官方推荐使用;
(function(){
document.write('hello');
}());
//3.用()包裹函数,无法表明函数与之后的()的整体性,不推荐使用。
(function(){
document.write('hello');
})();
//4.放在中括号[]内执行
[function(){
document.write('hello');
}()];
//5.使用 + 运算符
+function(){
document.write('hello');
}()
//6.使用 - 运算符
-function(){
document.write('ni hao');
}()
//7.使用波浪符 ~
~function(){
document.write('hello');
}()
//8.使用 void
void function(){
document.write('hello');
}()