1.创建函数
1-1 以直接量的方式创建
function go(){
console.log("hello world")
}
tips:在函数前后调用都可以
1-2 以变量的方式创建
var go = function(a){
console.log(a)
}
tips
2.函数返回值
函数return之后,return后面的语句就不会执行了
# 什么是函数的返回值
定义:函数的执行结果
函数可以没有return
tips:
1.函数会在执行完return语句之后停止,并立即退出
2.return语句也可以不带任何返回值,用于提前停止函数执行
//return的作用:把结果返回到函数外部
function show(){
return "hello world"
}
var b = show(); // 在哪调用返回到哪里;
作用:将函数内部的值返回外部
function go(){
return "hello world";
console.log("good"); // 不会执行
}
console.log(go()); // hello world
3.函数的参数(局部变量)
可变参(不定参)arguments
参数的个数可变,参数数组
//对传入的参数求和
function total(){
let result = 0;
for(let i=0;i<arguments.length;i++){
result+=arguments[i];
}
return result;
}
var a = total(2,3,3);
<script>
function go(a,b){
console.log(a);
console.log(b);
} //--tips:js传不定参
go();
go(10);
go(10,20)
</script>
3-1 重载
重载:就是函数名相同根据参数的不同,动态决定调用哪个方法
js中没有重载的概念,因为重复声明,下面的会覆盖上面的
<script>
// var a = 10;
// var a = 20;
// console.log(a);
function go(a,b){
console.log(a);
console.log(a+b);
}
go(10);
</script>
使用arguments对象模拟重载
<script>
function go(){
if(arguments.length ==1){
console.log(arguments[0])
}
else if(arguments.length==2){
console.log(arguments[0]);
console.log(arguments[0]+arguments[1])
}
}
go(2)
go(20,5)
</script>
4 函数作为对象的方法
<script>
var obj ={
name:"html",
sayName:function(){
console.log(this.name)
}
}
// 函数是对象的一个方法
obj.sayName();
// this关键字指向问题
// 1.onclick 谁执行,this指向谁
// 2.谁执行方法,this指向谁
</script>
5 回调函数
使用场景:异步问题
<script>
var show=function (a){
console.log(a);
}
function go(callback){
var b =10;
callback(b)
}
go(show);
//show 传递给callback,定义b=10后调用show()函数,将b传给啊,输出b=10
</script>
<script>
function go(callback){
var b=20;
callback(b);
}
go(function(a){
console.log(a);
})
</script>
5-1 箭头函数
<script>
// var show = function(a){
// console.log(a);
// }
var go=(a)=>{ ----特点:省略了function
console.log(a)
}
go(30)
</script>
如果参数只有一个可以省略小括号,执行语句只有一句可以省略大括号
var show = a=>console.log(a);
show(10);
如果输出语句只有一段return语句,可以省略return语句
<script >
// var go=(a)=>{
// return a;
// }
var show= a=>a;
console.log(show(10))
</script>