【JavaScript】函数的定义与调用

1、定义函数

//方式一
function myFunction1(p1, p2) {
    return p1 * p2;              // 该函数返回 p1 和 p2 的乘积
}
//方式二
var myFunction2=function(p1, p2){
    return p1 *p2;
}

//两种方式定义的函数使用起来没有区别

函数的调用

函数中的代码将在其他代码调用该函数时执行:

  • 当事件发生时(如当用户点击按钮时)
  • 当 JavaScript 代码调用时
  • 自动的(自调用)

注:

  • 函数执行到return结束,但如果没有执行return,也会返回结果(返回undefined)。

  • 调用函数时填写的实参多了不影响执行,少了,返回值会出问题(比如返回NaN),反正就是都不会报错。

  • 调用函数加了()时,引用的是函数结果,如果不加,引用的是函数对象(返回值是函数的定义)。如:

<div id="demo1"></div>
<div id="demo2"></div>
<script>
    function myFunction(p1, p2) {
        return p1 * p2;              // 该函数返回 p1 和 p2 的乘积
    }
    document.getElementById("demo1").innerHTML =myFunction(1,2);
    document.getElementById("demo2").innerHTML =myFunction;

</script>

运行结果:
image

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');
}()
posted @ 2021-08-05 17:51  Erics-C  阅读(77)  评论(0)    收藏  举报