函数定义的两种形式
函数声明
function test(){
document.write('a');
}
此时test为函数名 使用test.name可以查看函数名为test
函数表达式
var fc = function test(){
document.write('a');
}
此时fc为函数体 使用fc.name可以查看函数名为test,方法调用是fc()
此时test()无法调用函数
var fc = function (){
document.write('a');
}
此时fc为函数体 使用的匿名函数可以查看函数名为fc,方法调用是fc()
形参与实参
形参:用于占位的参数 求形参长度:函数名.length
实参:实际使用的参数 求实参长度:Arguments.length
*Arguments (数组) 实参列表
若传入的实参数多于形参,但是不会丢弃多传入的参数,可以存储所有的实参内容
注意:若Arguments 对应的形参变化,则Arguments 也发生变化,虽然不是引用值,但是之间存在映射关系
映射详解例子:
var fc = function (a,b){
a = 5;
document.write(arguments[0]);//此时输出的结果为5,不为1
}
fc(1,2)
映射详解深入:
var fc = function (a,b){
b = 5;
document.write(arguments[1]);//此时输出的结果为undefined
}
fc(1)
原因剖析:调用时Arguments只有一个值,Arguments只是在函数调用时出现映射,所以第二形参未参与隐射
typeof扩展
- typeof返回的所有结果都是string类型
- typeof(context) 与typeof context用法一致
网友评论