前言:大家好~我是阿飞。在我们搞清函数调用和引用之前,让我们先认识下函数的基本结构吧。
函数的结构
function demo (a,b){
console.log(a+b);
return 88;
}
demo("o","k");
demo;
function 函数名("o","k"){
函数体
return 返回值
}
函数调用(实参1,实参2);
函数引用;
从上我们可以看出函数的调用就是demo(),函数的引用为demo
demo() 函数调用 (并不需要加分号,加分号是为了语法完整。实际运用时大多需要加分号)
demo 函数引用
注意此时的分号意思是,结束一条语句。函数调用和引用本质上并不需要;分号。很多初学者都会误以为加了分号才是函数调用。
总结:函数调用和引用的区别
-
函数调用加括号,函数引用不加括号。
-
函数调用就是立刻执行函数。引用就是不执行。
function demo1 (a,b){ console.log(a+b); return 88; } demo1("o","k"); //后台打印ok function demo2 (a,b){ console.log(a+b); return 88; } demo2; //后台没有任何显示
tip:由此可见想要执行函数里的内容的话必须加括号,就是使用函数调用
使用console.log打印函数调用和引用的区别
打印函数调用
function demo1 (a,b){
console.log(a+b);
return 88;
}
console.log(demo1("o","k"));
//后台打印
//第一行 ok
//第二行 88
打印函数引用
function demo2 (a,b){
console.log(a+b);
return 88;
}
console.log(demo2);
//后台打印结果
function demo2(a,b){
console.log(a+b);
return 88;
}
使用console.log打印函数调用和单独使用函数调用的区别
打印函数调用
function demo1 (){
console.log("ok");
return 88;
}
console.log(demo1());
//后台打印
//第一行 ok
//第二行 88
函数调用
function demo1 (){
console.log("ok");
return 88;
}
demo1();
//后台打印
//第一行 ok
tips:由此可见如果想要显示return返回值内容的话 需要console.log,单纯调用无法显示返回值。
打印函数调用
function demo1 (){
console.log("ok");
return;
}
console.log(demo1());
//后台打印
//第一行 ok
//第二行 undefined
打印函数调用
function demo2 (){
console.log("ok");
}
console.log(demo2());
//后台打印
//第一行 ok
//第二行 undefined
tips:由此可见return不写 或者return后面不写值的话 默认返回undefined未定义
此外函数调用和引用还可以有各种用法
例1:
function demo (){
console.log("ok");
}
var practice = demo();
//后台打印
//第一行 ok
console.log(practice);
//后台打印
//第一行 ok
//第二行 undefined
console.log(practice());
//报错
例2:
function demo (){
console.log("ok");
}
var practice = demo;
practice();
//后台打印
//第一行 ok
console.log(practice());
//后台打印
//第一行 ok
//第二行 undefined
只有函数才可以使用()括号调用,如果单独一个变量加()括号会直接报错
var demo = 100;
demo();
//因为没有函数 所以会报错
tips:通常函数调用写在函数体下方(后面),但是也可以写在上方(前面)
//函数调用正常位置写法
function demo (){
console.log("ok");
}
demo();
//函数调用提前
demo();
function demo (){
console.log("ok");
}
tips:函数调用提前有一个条件就是,必须写上函数名!没有函数名会报错。
好了,相信大家对函数调用和引用有了基本的了解了吧。