javascript学习系列(二)函数
1、检测对象中是都存在某变量
var in object; //存在返回true,反之为false。
枚举对象:
for(var p in obj){
console.log(p); //对象名
console.log(obj[p]); //对象值
}
2、函数的两种定义方式
(1)字面量{} //声明提前(预解析是会被提到最前面)
function add(num1,num2){}
(2)var表达式
var fun = function(){}
(3)构造函数 new Object()
new Function('num1','num2','...') //不常用,性能差
一般只选用前两种
3、函数预解析
(先找var后的名称再找function后面的名字)
console.log(add); //能正常输出1
function add(){ console.log(1); }
console.log(add2); //add2 is not a function
var add2 = function(){ console.log(2); }
4、函数的调用
(1)普通函数
(2)方法
(3)构造函数
(4)间接调用
5、arguments 类数组
每个函数里面都有的局部变量,一般用于不确定函数形参时使用(实参大于形参);
它不是真正的数组,eg:
function argumentsArr(){
if(arguments.length==0) return;
var sum=0;
for(var i=0;i<arguments.length; i++){
sum += arguments [i];
}
return sum;
}
argumentsArr(1,2,3);
arguments :
{
'0':1,
'1':2.
'2':3,
length:3
}
注意:
(1)arguments指向与形参指向同一个地方,如果改变arguments对应的值,则形参值也会改变;
(2)arguments是每个函数中所独有的。
(3)arguments.callee 指函数本身,一般用于递归(严格模式下需要起个别名)。
eg:
function factorial(num){
if(num <= 1) return;
return num*arguments.callee(num-1);
}
(4)形参的个数:funName.length;
6、 函数的返回:
返回值