JavaScript函数定义

JavaScript 函数定义

使用关键字 function 定义函数。

函数声明定义

function  函数名(参数){

  代码块

}

函数声明后不会立即执行,会在我们需要的时候调用到

函数表达式定义

函数可以储存在变量中 (函数是一个匿名函数,储存在变量中,不需要函数名,通过变量名调用)

var  变量名 = function ( 参数,参数){

  代码块

}

函数表达式存储在变量后,变量也可以作为函数使用:

var  变量名x = function (参数,参数){return a* b};

var  z =x(4*3) ;

以分号结尾,因为是一个执行语句。

通过内置的 JavaScript 函数构造器(Function())定义。

Function() 构造函数

var  a = new  Function()(“a”,“b” “return a*b”);

var  x = a (4,3);

在JavaScript中避免使用new关键字

不用构造函数,上例可以写成:

var a = function (a,b){ return a*b}

var x = a (4,3);

 

函数提升:

提升(Hoisting)应用在变量的声明与函数的声明。变量的声明(注意不包含变量初始化)会被提升(置顶)到声明所在的上下文。但是变量初始化的顺序不变。

因此函数可以在声明之前调用。

但是使用函数表达式定义的无法提升!

总结 :
  Javascript 中函数声明和函数表达式是存在区别的,函数声明在JS解析时进行函数提升,因此在同一个作用域内,不管函数声明在哪里定义,该函数都可以进行调用。
  而函数表达式的值是在JS运行时确定,并且在表达式赋值完成后,该函数才能调用。这个微小的区别,可能会导致JS代码出现意想不到的bug。

自调用函数:

函数表达式可以 "自调用"。如果表达式后面紧跟 () ,则会自动调用。不能自调用声明的函数。通过添加括号,来说明它是一个函数表达式: 是匿名自我调用的函数 (没有函数名)。

(function (){函数体})();

函数可作为一个值使用:

function a(){return a*b}

var x = a(3,4);

函数可作为一个表达式使用:

 

function a(){return a*b}

var x = a(3,4)-1;

函数是对象

在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。  但JavaScript 函数描述为一个对象更加准确。   JavaScript 函数有 属性 和 方法。  

arguments.length 属性返回函数调用过程接收到的参数个数:

function a (d,s){ return  arguments.length }              document.getElementById("id").innerHTML = myFunction(4, 3);

toString() 方法将函数作为一个字符串返回:

function x (a,b){ return  a*b }              document.getElementById("id").innerHTML = myFunction(4, 3).toString ();

 

posted @ 2019-02-27 18:46  程序图  阅读(184)  评论(0编辑  收藏  举报