js 函数

来源:互联网 发布:礼仪之邦 知乎 编辑:程序博客网 时间:2024/05/22 09:46

函数

1.      什么是函数:也称为方法,就是指程序中具有特定功能的模块

2.      函数的分类:

a)        从定义角度分:JS内置函数、自定义函数

l  内置函数:alert、document.write、console.log、confirm、prompt

l  自定义函数:根据需求用户自己编写的函数

b)        从参数角度分:有参函数、无参函数

c)        从返回值角度分:有返回值函数、无返回值函数

d)        特殊:匿名函数、递归函数、自执行函数

3.      函数定义的格式(完整格式):

function函数名(形参列表) {

           函数体(函数中封装的语句);

 

                   return  返回值;

}

4.      定义函数时的注意事项

a)        function是关键字,必须小写,作用是告诉浏览器下面代码为函数,需要按照函数的语法规则进行解析,不可省略

b)        函数名必须符合标识符的命名规则

l  由字母、数字、下划线、$构成

l  不可以以数字开头

l  不可以是关键字

l  严格区分大小写

l  见名知意

l  按照驼峰命名法命名

c)        所谓形参就是指用来接收要处理的数据的变量,主意形参在定义时不加var,一个函数可以有多个形参,形参间用逗号分隔,如果一个函数没有参数,那么形参列表所在的小括号不可以省略。另外小括号后面不可以加分号

d)        函数体就是指函数要执行的语句,可以是0条,也可以是多条,如果是0条,那么这样的函数我们成为”空函数”,空函数通常用来占位

5.      无参无返回值函数的定义格式

function函数名(){

           函数体;

}

6.      无参无返回值函数的调用,格式为:函数名();

7.      定义函数的好处

a)        有利于提高代码的复用性

b)        有利于提高代码的维护效率

c)        有利于提高内存的利用效率

8.      有参无返回值函数的定义格式:

function函数名(形参列表) {

           函数体;

}

9.      有参函数的调用格式:函数名(实参列表);

10.  有参无返回值函数的注意事项

a)        形参:

l  所谓形参就是定义函数时的参数

l  它的本质就是一个变量,需要的注意的是形参在定义时不加var

l  一个函数可以有多个形参,形参间用逗号分隔。

l  如果没有形参,那么小括号不可以省略。

l  另外形参列表后面不可以加分号。

l  形参只有在函数被调用时参会被分配空间

l  函数在被执行后,形参所占用的空间会被立即释放

l  形参属于局部变量,所以形参只能在定义它的函数内部使用

b)        实参:

l  所谓实参就是函数要处理的具体数据,换句话说实参就是函数被调用时的参数

l  实参可以有多个,中间用逗号分隔

c)        实参和形参的关系

l  理论上实参和形参的个数要一一对应,但是如果不对应也不影响程序的执行,因为在函数内部有一个arguments对象,该对象保存了传递过来的实参

l  实参和形参位置上要一一对应

l  实参和形参在数据传递上只能是由实参传递给形参,不可以反向传递

11.  有返回值函数,格式为:

function函数名() {

         return 返回值;

}

12.  返回值:所谓返回值就是一个函数在运行后得到一个结果,通过return语句将这个结果返回到函数调用者处

13.  返回值的注意事项

a)        返回值可以是一个常量、变量、表达式

b)        一个函数中可以有多个return语句,但是只能返回第一个,原因是return语句具有结束函数的作用,return后面的所有语句都不会被执行到

c)        其实无论什么函数都有一个return语句,只不过无返回值的函数,return语句后面不跟任何结果,如果一个函数没有返回值,那么如果非要打印它的返回值,它的值为Undefined

14.  JS中变量的分类

a)        全局变量:定义在函数外面的变量称之为全局变量,作用域是整个文档

b)        局部变量:定义在函数内部的变量称之为局部变量,作用域是定义它的那个函数

c)        注意事项

l  当局部变量和全局变量同名时,局部变量会屏蔽掉全局变量

l  当全局变量和局部变量同名时,如果要使用全局变量,那么需要在变量名前面加window对象,格式为window.变量名;

l  如果省略局部变量前面的var,那么这个变量会自动变成全局变量,不建议使用该方法定义全局变量

l  变量声明前置,所谓变量声明前置,就是指将变量的声明工作放在该变量作用与的最上端

JS中变量名可以相同,后面声明的变量相当于对上面变量的重新赋值

d)        什么时候用全局变量,什么时候用局部变量

l  如果一个变量只在一个函数中被使用到,那么就定义成局部变量

l  如果一个变量在多个函数中用到,那么就定义成全局变量

15.  匿名函数:所谓匿名函数就是指没有名字的函数,格式

function(参数列表){

         函数体;

}

16.  匿名函数的调用

a)        函数表达式的形式:

l  定义时:var  变量名= function(形参列表){函数体};

l  调用时:变量名(实参列表);

b)        使用JS事件进行调用,格式

document.getElementById(‘btn’).onclick= function () {函数体};

17.  自执行函数:就是指函数在定义后自动执行,格式如下

(function() {函数体})(实参列表);

18.  递归函数:所谓递归函数就是指自己调用自己的函数,注意事项如下

a)        使用递归函数时,数据间一定要有规律

b)        递归函数一定要有出口,否则内存会被耗尽

原创粉丝点击