js中(function(){...})()立即执行函数、arguments类数组转换数组

arguments 是类数组

[].slice.call(arguments)  可以把类数组转换成 数组

  var a = function(){
      console.log([].slice.call(arguments, 1));
  };

  a(1,2,1,3);  //显示[2,1,3]

 

js中(function(){...})()立即执行函数

 

  1. 函数声明  

   (函数声明会导致函数提升,function会被解释器优先编译。函数声明可以写在任意区域,不会影响调用)

 fnName(); // 可在函数声明前调用
 function fnName(){...}  //函数声明

    2. 函数表达式

    (函数表达式不会出现函数提升,JS解释器会逐行解析。因此只能在函数表达式后调用,在函数表达式前调用就会报错)

var a=function(){...}   // 函数表达式
a();  //只能在函数表达式后面调用

 

给函数表达式加上()则函数表达式会被直接调用,而给函数声明加上()则会被忽略,函数声明不会被调用。

function fnName(){...}(); //函数声明会忽略掉后面的(),不会被调用 
var a=function(){...}(); //函数表达式会直接调用

 

栗子:

(function(){
    var arr=toArray(arguments);
    console.log(Array.isArray(arr),arr);
})(1,2,3,4,5);  //true,[1,2,3,4,5]

function toArray(arguments){
    return [].slice.call(arguments);
}

 

转载于:https://my.oschina.net/u/3545669/blog/1540109

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值