(小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别
一、函数的定义:
在说明什么是函数前先举一个小例子:
大家都知道印刷术是我国的四大发明(科普一下:中国四大发明:造纸术、印刷术、火药、指南针)之一,之所以有印刷术,是因为重复的抄写既浪费时间,效率又很低,所以印刷术应用而生,印刷术就像一个工具,有了这个工具,我们就不需要再重复的去抄写一些一模一样的内容。
今天所说的函数就类似于印刷术,我们在书写代码时发现,在实现同一个功能时,所用的代码几乎是一样的,因为实际需要,所以不得不重复的去书写一样的代码,这时我们书写的代码看起来很冗杂,会占据内存空间,解析的时间也会很长,所以,为了使我们的代码书写的更美观,我们可以将我们的代码封装起来,给它一个命名,放在一个独立的模块里,需要使用时拿过来就OK了!
比如说我们在不使用任何循环语句直接想打印5次“hello world!”时,这时我们就需要重复输出5次“hello world!”,代码如下:
document.write(('hello world!')+"</br>"); document.write(('hello world!')+"</br>"); document.write(('hello world!')+"</br>"); document.write(('hello world!')+"</br>"); document.write(('hello world!')+"</br>");
function helloworld(){ document.write(('hello world!')+"</br>"); } helloworld() helloworld() helloworld() helloworld() helloworld()
函数的定义:需要反复使用的功能代码,封装成一个独立的模块,这个模块就叫函数。
二、声明函数的方法:
用function来定义函数
我们了解了什么是函数后,接着来看一下怎么声明函数,通俗点说就是怎么使用这个函数:
1.语句定义法:
其实我们在打印“hello world”时使用的方法就是语句定义法
格式:function 函数名(){
函数块;
}
调用:函数名()
2.表达式定义法:
一说表达式,肯定是和赋值有关,我们可以大胆的猜想一下,表达式定义法是不是就是我们将一个函数赋值给了一个变量呢?
看一下它的格式:
var 变量名 = function[函数名](){
函数块;
}
调用:变量名()
注意:var后面的是它声明的这个变量的变量名,不是函数名,函数名还是在function后面,之所以将函数名写在[]中,是因为在表达式定义法中,函数名是可以省略的,通常情况下,函数名我们也都是省略不写的。
语句定义法和表达式定义法在以后的使用中,语句定义法会更常用。
为什么说语句定义法更常用呢,这就要说一下语句定义法和表达式定义法的区别了:
3、语句定义法和表达式定义法的区别:
语句定义法会提升函数,会在执行代码前读取函数声明,通俗讲就是我们可以在任何位置调用这个函数;
//person() 函数前调用 //张三 function person(){ var name = "张三"; alert(name); } person() //函数后调用 //张三
表达式定义法不会提升函数,必须先声明函数,再调用;
//person(); 报错:控制台输出person is not a function var person = function(){ var name = "张三"; alert(name); } person(); //张三