Part1:形参&实参
概念:
形参:定义函数时使用的参数(a,b)。
实参:调用时传递给函数的参数(1,4)。
var myfun = function(a,b){
return a*b;
}
myfun(1,4)
//4
拓展:JavaScript定义了arguments对象,用于在函数内部执行,arguments.length是可以快速获取函数的实参个数,使用arguments[n]可以获取实参的值。
Part2:匿名函数(函数声明的提升)
匿名函数:
function add(a,b){
alert(a+b)
}
add(1,2)
//弹窗显示3
匿名函数最重要的一个特征就是函数声明提升。
以下写法也正确:
add(1,2);
function add(a,b){
alert(a+b)
}
//弹窗显示:3
函数表达式:
var add = function(a,b){
alert(a+b)
}
add(1,2) //弹窗显示:3
这种形式看起来好像是常规的变量赋值语句。
但是函数表达式和函数声明的区别在于,函数表达式在使用前必须先赋值。所以这段代码执行的时候就会出错:
add(1,2) //无弹窗,报错: add is not a function
var add = function(a,b){
alert(a+b)
}
JS声明函数的三种方式:
- 1.函数表达式: 即上面第一种方式, 这种方法使用function操作符创建函数, 表达式可以存储在变量或者对象属性里. 函数表达式往往被称为匿名函数, 因为它没有名字. 证明这一点你可以 console.log(h.name); 可以看到打印为空 “”
- 2.函数声明: 即上面第二种方式, 会声明一个具名函数, 且函数能在其所在作用域的任意位置被调用, 其创建的函数为具名函数, 证明这一点你可以 console.log(h.name); 可以看到打印为 “h”. 可在后面的代码中将此函数通过函数名赋值给变量或者对象属性
- 3.Function()构造器: 关键字`new `。
调用方式
//表达式的调用
const add = function (a, b){
return a + b;
}
const sum = add(2, 2)
console.log(sum)
//匿名函数式调用
//方式1 这种方式尽量少用
const sum1 = function(a, b){
return a + b;
}(2, 2);
//方式2 推荐
const sum = (function(a, b){
return x + b;
})(2, 2);
console.log(sum1);
//方式3
(new Function("a","b","return a+b"))(2,2)
补充:对象表示形式:
func:function(){
}
参考链接:https://blog.csdn.net/qq_30638831/article/details/88628421