你的位置:首页 > Java教程

[Java教程]javascript的函数


1.函数的声明

(1) function命令方式

   function fn(){};

(2) 函数的表达式

采用变量赋值的方式,function命令后面不带有函数名。如果加上函数名,那么该函数名只在函数体内部有效,在函数体外部无效。

var add =  function fn(){};

(3) function的构造函数

var add = new  function("x","y","return(x+y)");

Function对象接受多个参数,除了最后一个参数是add函数的“函数体”,其他参数都是add函数的参数。

(4)函数的重复声明

如果重复声明同一个函数,那么后面的声明则会覆盖前面的声明。

 

2.函数名的提升

采用function命令方式声明函数时,整个代码会被提升到代码头部,原因是因为javascript引擎将函数名视同变量名,因此下面的代码不会报错。

f();
function f(){};

但是如果采用赋值语句定义函数,那么javascript就会报错:

f();

var f = function(){};

上面的代码相当于:

var f;
f();
f = function (){};

当调用f的时候,f只是被声明,还没有被赋值,等于undefined,所以会报错。因此,如果同时采用function命令和赋值语句声明同一个函数,最后总是采用赋值语句的定义。

var f = function() {
console.log ('1');
}
function f() {
console.log('2');
}

f()
// 1

3.name属性

大多数JavaScript引擎,支持函数非标准的name属性。该属性返回函数名。

function f1() {}
f1.name // 'f1'

var f2 = function () {};
f2.name // ' '

var f3 = function myName() {};
f3.name // 'myName'