函数

函数

1.定义:函数是由事件驱动的当被调用执行时可以重复使用的代码块。

2.函数可以在任何时候任何地方封装,也可以在任何时候任何地方被调用执行(针对命名函数,因为匿名函数赋值给的变量存在声明提升)

3.函数里的隐藏对象:arguments

arguments是一伪数组,是对象,是所有实参的一个集合

eg: function fn(a,,b,c,d,e){

    console.log(arguments instanceof Array);    false

    arguments[0] = 10;

    console.log(a);      10

    console.log(arguments);     [10,2,3,4,5]        

    console.log(arguments.callee);     函数本身

}

Fn(1,2,3,4,5);

总结:

  1. arguments方法能改变参数值;
  2. 形参的值并非来自实参,而是来自arguments集合;

 

4.This

严格模式:this指向undefined;

非严格模式:this必须是对象。ES5之前this是包含它的函数作为方法被调用执行时所属的对象,如果找不到就是window对象。ES6新增了箭头函数,在箭头函数中,要考虑上下文的执行环境,实际上this没有指向,this只是借用了其父环境的this指向,如果单独存在,则是window对象。

5.递归(若使用必须有一个出口使其停止执行)

定义:函数调用函数(所有递归能实现的循环也能实现,所有循环能实现的递归也能实现)

       Eg:实现阶乘5*4*3*2*1

              function fn(i){

       if(I == 1){

       fn(1)

}else{

       return fn(i-1)*i

}

}

fn(5)

6.闭包

定义:ES6之前是一个函数有权访问另一个函数(可以是立即执行函数)的局部变量或方法=》函数包含函数;ES6之后是作用域中出现作用域(作用域的嵌套)。

作用:会存储相应变量的值。

Eg:  function fn(p1){

       this.sayHello =function(){

              return p1;

}

return function(p2){

       return sayHello() + p2;

}

}

fn(“hello,”)(“world”);             “hello,world”(作用域链,this指向window)

7.立即执行函数

定义:模拟一个块级作用域(一开始就执行的)

写法:(function(){})()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值