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)普通函数

javascript学习系列(二)函数

 

(2)方法

javascript学习系列(二)函数

(3)构造函数

javascript学习系列(二)函数

(4)间接调用

javascript学习系列(二)函数

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、 函数的返回:

javascript学习系列(二)函数

返回值

javascript学习系列(二)函数