js中的函数(java中的方法)
封装功能,处理业务的代码块
定义:
函数声明
function 函数名 (参数列表) {
函数体;
[return 返回值;]
}
调用:
1. 函数名(实参);
2. 转换函数表达式,在最后添加()自执行
在函数声明的前面添加~|!|+|-
在函数声明天后添加()包裹
函数表达式的方式
var 变量名 = function 函数名 (参数列表) {
函数体;
[return 返回值;]
};
函数名一般省略,不可以通过函数进行调用,只能通过变量名,函数名可以在函数内部进行递归使用
调用:
1.通过变量名调用 变量名(参数);
2.函数表达式最后添加(),直接直接这个函数,自执行
注意:参数省略var关键字
函数的作用域提升:
只有函数声明的方式才有函数作用域的提升,函数表达式没有,提升到当前作用域的最上面
<script>
function fn2(name,age){
console.log("我是函数声明fn2");
console.log(name,age);
}fn2('李四',15); //作用域提升
//函数声明
function fn1(){
console.log("我是函数声明fn1");
return '返回值';
}
fn1();
console.log(fn1());
function fn2(name,age){
console.log("我是函数声明fn2");
if(age==15){
console.log(name+"哈哈哈只有15岁");
return;
}
console.log(name,age);
}
fn2('zhangsan',18);
//参数可以不一一对应
fn2();
fn2(123);
fn2(1,2,3,4,5);
//函数表达式
var f1=function fn3(i){
if(i==5){
return;
}
console.log("我是函数表达式"+i);
i++;
fn3(i);
}
f1(1);
//fn3();
//函数表达式自执行
var f2=function(){
console.log("heihei");
}();
//函数声明转为函数表达式
~function fun1(){
console.log("我是fun1");
}();
!function fun2(){
console.log("我是fun2");
}();
+function fun3(){
console.log("我是fun3");
}();
-function fun4(){
console.log("我是fun4");
}();
(function fun5(){
console.log("我是fun5");
})();
</script>