JS 函数清单

1、函数定义表达式

var fun = function(){}

2、函数声明表达式

不能出现在循环、条件判断、或者try/cache/finally以及witch中

function fun(){}

3、函数的提升

函数定义式:类似于变量提升,只会提升函数变量名,不会提升函数体,不能在函数定义之前使用。

函数表达式:整体提升。

4、方法调用

作为对象的内置方法被进行调用

当一个函数被保存为对象的一个属性时,我们称它为一个方法。当一个方法被调用时,this被绑定到该对象。如果调用表达式包含一个 提取属性的动作(a.name或a[name]),那么他就是被当做一个方法调用。

5、函数调用

不是作为一个对象的属性进行调用

6、方法调用和函数调用的区别

this的指向问题,方法调用中的this指向调用他的对象,而函数调用的this指向不是Windows(非严格模式下)就是undefined(严格模式下)

7、间接调用 apply() 和 call()

apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。

call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法。

8、可选形参

9、实参对象

在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象。可以通过arguments[所在下标]获取到传入函数的参数

10、callee和caller(非严格模式下)

caller 非标准

实参对象arguments的属性,指代调用当前正在执行的函数的函数。常用于匿名函数中通过callee来递归调用自身。

var fun = function(){
    if(x<=1) return 1;
    return x*arguments.callee(x-1);
}

11、闭包

理解关键:函数定义时的作用域链到函数执行时依然有效

如果这个函数定义了嵌套的函数,并将他作为返回值返回,或者储存在某处的属性里,这时就会有一个外部引用指向这个嵌套的函数。他就不会被当作垃圾回收,并且他所指向的变量绑定对象也不会被当作垃圾回收。

12、bind()方法

将函数绑定至某个对象,传入bind的实参也会绑定值this

13、Function() 构造方法 (不常用)

var f = new Function('x','y','return x*y')

注意点:权威指南(P193)

14、检测对象是否是正真的函数对象,检测其class属性

function classof(o){ //利用该方法,可以判断对象类型
    if(o===null) return "Null";
    if(o===undefined) return "Undefined";
    return Object.prototype.toString.call(o).slice(8,-1);
}

15、高阶函数

高阶函数:接受一个或多个函数作为参数,并返回一个新函数;

16、不完全函数

17、记忆

小知识点:

1、没有返回值的函数有时称为过程

2、没有形参的构造函数调用可以省略圆括号

3、isArrayLike(x) 判断x是否位数组或者类数组 (jquery中的方法)

4、isFinite(x) 用于检查x是否为无穷大:如果数字是NaN或者是正负无穷大,则返回false

5、isArray(x) 判断x是否为数组

6、typeof x ==="function" 判断x是否为方法

7、函数作为对象的属性调用时,函数就称为方法

8、函数的lenght属性返回的是函数形参个数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值