javascript之函数

函数是什么?

函数指的是一段代码,这段代码定义一次能够调用屡次javascript

函数是javascript中一种特殊的对象,函数也是对象有本身的方法和属性java

注意:函数不调用就不会执行

函数的语法:(带参数的函数,不带参数的函数)

不带参数的函数:数组

   编写格式:app

            function      函数名{             函数体(要执行的操做)
                              }函数

带参数的函数:this

            function (这里边写参数)   {            函数体(要执行的操做)                                       }对象

函数的定义:(函数声明语句,函数表达式)

      编写格式:递归

函数声明语句:事件

         function   函数名{      函数体(要执行的操做)
            }ip

函数表达式:

      var   变量名(也等于函数的名字)=function(这里边写参数){         函数体(要执行的操做)
                        }

函数声明语句和函数表达式的区别?

使用函数声明语句定义的函数能够在任何地方调用,使用函数表达式定义的函数,调用只能用在定义的函数以前,调用再函数以前会报错。

函数的参数问题:

在定义函数时若是有多个参数参数之间要用逗号分隔,在函数定义的参数叫形参,在函数调用的时候的参数叫实参。当实参比形参少的受多余的形参会是undeFinde,当实参等于形参时会对应赋值,当实参多于形参时多余的实参会被忽略掉。(函数中会有一个伪数组arguments,这个argumens是保存实参的)

使用函数的返回值:return

若是函数体外面要使用函数的返回值,可使用return。在函数中return以后的代码再也不执行。若是没有明确的返回值,而且在某个时间想让函数中止,可使用return。

编写格式:

      function      函数名   (这里边写参数){      函数体(要执行的操做)             return   }

函数的特殊用途: (递归函数和自执行函数)

递归函数:(自身调用自身,有结束条件)

编写格式:

      function 函数名(这里边写参数)   {
                  if (参数<=1){      return 1
            }else{
      return 参数*函数名(参数-1)   }
      }

自执行函数:(不用调用,本身执行)

编写格式1:

         function 函数名(参数)   {
               函数体(要执行的操做)
         }

编写格式2:

(函数 (参数){   函数体(要执行的操做)   })(参数值)

函数的调用(函数的调用有四种方式,先之讲做为函数这一种)

调用方法:函数名(参数值);

函数的做用域:(做用域就是函数与变量可访问的范围)

全局做用域:

最外层的函数和最外层函数外面的变量拥有全局做用域

没有使用var声明的变量拥有全局做用域(这种方式不建议在程序中使用)

window上的属性和方法都具备全局做用域

局部做用域:(和全局做用域相反,只在固定的代码片断中访问)

         变量声明:把变量声明提早到当前做用域的最上面而后再原来的位置赋值

若是全局变量和局部变量的名字相同那么优先使用局部变量

函数的封装:(就是一个提取参数的过程)

把语句放在函数里边而后调用这个函数

arguments属性:

用于存放实参,本质上不是一个数组是一个伪数组有长度

函数中的this :

this在普通函数中指向的是window,this在事件中只想的是发生事件的DOM对象

call方法和apply方法:

call方法和apply方法是函数身上的方法,做用是用来改变函数中this的指向的。二者的区别是传参数的方式不一样,在使用call和apply时若是括号里没有参数那么this默认只想window对象

call方法:

使用方法:要改变this指向函数的函数名.call(x,y,z)x是想要让this指向哪一个函数的函数名,剩下的是要往函数里传的参数

apply方法:

使用方法:要改变this指向函数的函数名.apply(x,[q.b.j])x是想要让this指向哪一个函数的函数名,剩下的是要往函数里传的参数只不过是一个数组数组里边能够有多个不过只能有一个数组

构造函数:

  1. 构造函数仍是普通的函数。
  2. 有一条不成文的规定:构造函数的首字母大写,例如:

    普通函数命名: function abc(){函数体}

    构造函数命名:function Abc(){函数体}

  3. 在函数体内声明变量时再也不使用var而是使用this,例如:

    普通函数声明变量: var str=123

    构造函数声明变量:this.str=123

  4. this指向当前函数的实例对象,再也不是window
  5. 调用构造函数的时候要在前边加上new。例如:

    普通函数调用:abc()

    构造函数调用:new Abc()

构造函数的返回值:

  1. 没有设置返回值:返回this
  2. 返回值是基本类型的,五种原始类型
  3. 返回值是数组类型的:数组,对象

返回值若是是基本类型的那么返回值会被抛弃,若是返回值是引用类型的话,返回值将会被替代被返回出的值替代

相关文章
相关标签/搜索