八 函数进阶

Posted qfshini

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八 函数进阶相关的知识,希望对你有一定的参考价值。

1. 什么是函数?
    | 函数是将复用的代码块(重复度比较高的代码块)封装起来的模块

2. 函数的声明方式
    | 方式1: function 函数名(参数){函数内部代码块}
        | function add(num1,num2){return num1 + num2}
    
    | 方式2:(参数) => {函数内部代码块}

    | 注意:全局函数的是保存在Windows对象里的,所以在定义函数的时候,极有可能会覆盖原来的Windows函数方法
        | 解决方法: 用let定义函数名

3. 立即执行函数
    | 立即执行函数是指函数在定义时会被立即执行且不需要指定的触发事件

技术图片

4. 函数中参数的默认值
    | function(参数A=默认值){}
        | 该函数的参数只有一个,那就是参数A,当不传值则使用括号内的默认值
    | 注意:函数中参数如果需要定义一个默认值,要把有默认值的参数放在最后面定义

5. arguments --> 可以在函数内获取所有传递的参数集合
    | 可以使用展开语法遍历里面的参数

技术图片

6. 回调函数
    | 在某个时刻被其他函数缩调用的函数都称之为回调函数
    | 比如:键盘弹起、鼠标事件等等


7. 函数中的this指向***
    | 全局环境下(普通函数):this就是Windows对象
        | 注意:如果使用了严格模式,全局环境下,this指向为undefined

    | 对象中函数(此时函数称之为方法),this指向调用函数的对象本身

    | 箭头函数,this指向父级元素中的this内容(也就是上下文)

8. apply/call/bind --> 改变this的指向
    | .apply(参数1,参数2)
        | 参数1:this指向的对象
        | 参数2:传递的形参
    
    | .call(参数1,参数2)
        | 参数1:this指向的对象
        | 参数2:传递的形参

    | 注意:.apply()和.call()的区别
        | 注意:无论这两个方法内部传递多少参数,第一个参数永远都是指定this的指向
        | .apply() 传递的参数,除去第一个参数是指定this指向的,其他的参数都是放在一个数组里进行传递
            | 函数.apply(this指向,[形参1,形参2...])
        | .call() 传递的参数,除去第一个参数是指定this指向的,其余的参数都是分开传递的
            | 函数.call(this指向,形参1,形参2...)

    | .bind(this指向)
        | .bind只有一个参数,那就是指定绑定this的指向

以上是关于八 函数进阶的主要内容,如果未能解决你的问题,请参考以下文章

八Vue Router 进阶-导航守卫

搜索进阶1八数码(HDU1043)

《算法竞赛进阶指南》0x27A* 八数码问题 POJ1077

前端基础进阶系列

性能测试八:jmeter进阶之beanshell

第五篇 函数进阶