1、函数的创建
1.1、以直接量的方式创建(推荐)
tips:在函数前后调用都是可以的
function go(){
console.log("hello world")
}
1.2、以变量的方式创建
tips:只能在函数之后调用
var b = function(){
console.log("good")
}
b();
2、函数的返回值
定义:函数的执行结果
<script>
/* 函数的返回值
函数的执行结果
tips:
1、函数调用之后,return后面的语句不会执行
2、函数遇到return语句会立即停止,退出
3、return语句的作用,将函数内容的值返回给外部
*/
function go(){
return 10;
console.log("hello world")
}
var res = go();
console.log(res)
</script>
2.1、函数return之后,return后面的语句就不会执行了
作用:将函数内部的值返回外部
function go(){
return "hello world";
console.log("good"); // 不会执行
}
console.log(go()); // hello world
3、函数的参数
函数的参数是局部变量 js传不定参
<script>
function go(a,b){
/* 函数的参数是局部变量 */
console.log(a);
console.log(b);
}
/*
function go(var a,b){
console.log(a);
console.log(b);
}
*/
/* tips:js传不定参 */
go();
go(10)
go(10,20)
</script>
4、重载
重载:就是根据参数的不同,动态决定调用哪个方法
js中没有重载的概念,因为重复声明,下面的会覆盖上面的
使用function声明的方法,本质上是window的方法
<script>
/* 使用function声明的方法,本质上是window的方法 */
function go(a){
console.log(a)
}
function go(a,b){
console.log(a);
console.log(a+b);
}
window.go(10);
go(10,20)
</script>
重载:函数名相同,参数不同,根据传入的参数动态决定调用那个方法 JS不支持重载
就要JS支持 arguments对象
JS传不定参,函数使用arguments对象管理函数内部的参数
function go(){
console.log(arguments)
}
go(10,23,4)
4.1、使用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(10)
go(10,20)
</script>
5、函数的对象
函数作为对象的方法
var obj ={
name:"html",
sayName:function(){
console.log(this.name)
}
}
/* 函数是对象的一个方法 */
obj.sayName();
this关键字指向问题
1、onclick 谁执行事件,this指向谁
2、谁执行方法,this指向谁
6、回调
回调函数就是这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。
场景:一般在异步调用中使用作用:
1.将函数内部的值返回到外部
2.取代了return语句
6.1、jquery中的回调
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
</head>
<body>
<!-- 回调函数 -->
<button id="btn">btn</button>
<script>
$("#btn").click(function(){
console.log("hello")
})
</script>
6.2、js回调
<script>
/* 回调函数:就是将函数作为函数传递给另一个函数
使用场景:异步问题
*/
var show= function(a){
console.log(a)
}
function go(callback){
var b = 10;
callback(b);
/* show(b); */
}
go(show);
</script>
<script>
function go(callback){
var b = 20;
callback(b);
}
go(function(res){
console.log(res)
})
</script>