使用关键字 function 定义函数。函数
函数声明定义:spa
function 函数名(参数){对象
代码块ip
}作用域
函数声明后不会当即执行,会在咱们须要的时候调用到字符串
函数表达式定义:get
函数能够储存在变量中 (函数是一个匿名函数,储存在变量中,不须要函数名,经过变量名调用)io
var 变量名 = function ( 参数,参数){function
代码块class
}
函数表达式存储在变量后,变量也能够做为函数使用:
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)应用在变量的声明与函数的声明。变量的声明(注意不包含变量初始化)会被提高(置顶)到声明所在的上下文。可是变量初始化的顺序不变。
所以函数能够在声明以前调用。
可是使用函数表达式定义的没法提高!
自调用函数:
函数表达式能够 "自调用"。若是表达式后面紧跟 () ,则会自动调用。不能自调用声明的函数。经过添加括号,来讲明它是一个函数表达式: 是匿名自我调用的函数 (没有函数名)。
(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 ();