zoukankan      html  css  js  c++  java
  • arguments

    arguments 转数组

    通常使用下面的方法来将 arguments 转换成数组:

    Array.prototype.slice.call(arguments);
    

      还有一个更简短的写法:

    [].slice.call(arguments);
    

      

    在这里,只是简单地调用了空数组的 slice 方法,而没有从 Array 的原型层面调用。

    为什么上面两种方法可以转换呢?

    首先,slice 方法得到的结果是一个数组,参数便是 arguments。事实上,满足一定条件的对象都能被 slice 方法转换成数组。看个例子:

    const obj = { 0: "A", 1: "B", length: 2 };
    const result = [].slice.call(obj);
    console.log(Array.isArray(result), result);
    

      

    将参数从一个函数传递到另一个函数

    function foo() {
        bar.apply(this, arguments);
    }
    function bar(a, b, c) {
        // logic
    }
    

      

    arguments 转数组

    Array.from() 是个非常推荐的方法,其可以将所有类数组对象转换成数组。

     数组与类数组对象

    数组具有一个基本特征:索引。这是一般对象所没有的。

    const obj = { 0: "a", 1: "b" };
    const arr = [ "a", "b" ];
    

      我们利用 obj[0]arr[0] 都能取得自己想要的数据,但取得数据的方式确实不同的。obj[0] 是利用对象的键值对存取数据,而arr[0] 却是利用数组的索引。事实上,Object 与 Array 的唯一区别就是 Object 的属性是 string,而 Array 的索引是 number。

     ES6 中的 arguments

    扩展操作符

    function func() {
        console.log(...arguments);
    }
    
    func(1, 2, 3);
    

      执行结果是:

    1 2 3
    

      简洁地讲,扩展操作符可以将 arguments 展开成独立的参数。

  • 相关阅读:
    linux进程管理相关命令
    win7 64位系统使用vs2010编译OSG3.2.1
    Linux入门
    Implement strStr()
    Remove Element
    Remove Duplicates from Sorted Array
    Reverse Nodes in k-Group
    node npm vue.js 笔记
    NodeJS、NPM安装配置与测试步骤(windows版本)
    Python HTTP库requests中文页面乱码解决方案!
  • 原文地址:https://www.cnblogs.com/laneyfu/p/6136710.html
Copyright © 2011-2022 走看看