javascript函数概念总结

关于javascript中函数概念的总结

  • [ 一 ] 函数的2中表达方式
  1. 仅作函数声明,加载时会被提升
    function sum(x) {
    if(x>0)
    return ‘正数’;
    else
    return '负数’;
    }

  2. 匿名函数表达式赋值给变量,会立即执行,后面带分号
    var sum = function (){
    if(x>0)
    return ‘正数’;
    else
    return '负数’;
    };

  3. 函数的传参多少都没有语法错误,要避免收到undefined,需对参数检查
    function sum(x) {
    if(typeof x != ‘number’)
    throw ‘not a number’;

    }

  4. 函数中的关键字arguments,她永远指向函数调用者传入的所有参数。
    function foo(x) {
    console.log('x = ’ + x); // 10
    for (var i=0; i<arguments.length; i++) {
    console.log('arg ’ + i + ’ = ’ + arguments[i]); // 10, 20, 30
    }
    }
    foo(10, 20, 30);

  • [ 二 ] 函数中变量的声明 : var 所在函数为该变量的作用域,
    注意: 1 函数之间的变量相互独立,互不影响,嵌套函数就近原 则。
    2 函数中的变量声明会提升,但是赋值不会提升。
    3 不在函数中定义的变量成为全局变量,js中默认全局对象window,全局变量就是绑定到window的属性。
    4 名字空间可以处理不同js文件使用相同全局变量引起的命名冲突,
    5 块级作用域变量 let ,常量定义 const
    6 解构赋值。*(不用循环取值,简化代码)var [x, y, z] = [‘hello’, ‘JavaScript’, ‘ES6’];
  • [ 三] 函数中this的问题
    函数内的this一般指向当前对象,外部引用会重新指向undefined 或window; 可以用apply或call控制this指向。
    函数本身的apply方法,两个参数(this对象,[传参])
  • [ 四 ] 高阶函数可以将函数作为参数传入,或者将函数作为结果返回
    *闭包 :在函数嵌套时,内部函数可以引用外部函数的参数和局部变量,当外部函数返回内部函数时,相关参数 和变量便被保存在函数当中。
    闭包就是携带状态的函数,并且它的状态可以完全对外隐藏起来。
    例:function lazy_sum(arr) {
    var sum = function () {
    return arr.reduce(function (x, y) {
    return x + y;
    });
    }
    return sum;
    }

    var f = lazy_sum([1, 2, 3, 4, 5]); //返回的是求和函数而不是结果 ;而且这里每次调用都是返回新的函数。
    f(); // 15 调用函数
    返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值