JavaScript函数七重关的第一关是函数定义
函数定义需要用到function关键字。
function myFunction() {
//函数体
document.write("hello,javascrept!<br>");
}
这是函数定义的第一种方法,也可以用下面的方法:
var a = function() {
document.write("hello,hello,javascrept!<br>");
}
与第一种方式不同的是,第二种函数定义方式需要先定义一个变量。“var a” ,然后用function关键字定义一个函数。将函数赋值给变量。这种方式定义函数的时候不需要再加函数名,函数名就是预先定义的变量名。调用函数时:
a();
下面探究一下两种函数定义方式的另外一个区别。
a();
var a = function() {
document.write("hello,hello,javascrept!<br>");
}
用第二种方式定义的a函数是否能成功调用呢?执行结果如下:
下面再看下第一种
myFunction();
function myFunction() {
document.write("hello,javascrept!<br>");
}
第一种方式定义的函数在函数定义语句前被调用时,没有报错成功调用。导致这种结果的原因是,如果是用第一种方法定义函数,它会被提前加载,因此调用语句可以写在函数定义之前。第二种方式定义的函数是不会被提前加载的,必须要执行到函数定义的语句才会加载这个函数,所以第二种方式定义的函数会报错。
再看一个例子:
console.log(a);
var a = function(){
alert("函数被调用了!");
}
console.log(a);
第一个a打印出来的结果是undefined,第二个a打印出来的就是具体的函数。说明这个函数a已经加载完毕。