zoukankan      html  css  js  c++  java
  • JavaScript arguments类数组

    1. 什么是类数组

      arguments 是一个类数组对象。代表传给一个function的参数列表。

       我们来传一个实例。

     function printArgs() {

         console.log(arguments);

       }

       printArgs("A", "a", 0, { foo: "Hello, arguments" });

     // ["A", "a", 0, Object]

     再看看 arguments 表示的内容,其表示了函数执行时传入函数的所有参数。在上面的例子中,代表了传入 printArgs 函数中的四个参数,可以分别用 arguments[0]、 arguments[1]… 来获取单个的参数

    2. arguments 的操作

     arguments.length

        arguments 是个类数组对象,其包含一个 length 属性,可以用 arguments.length 来获得传入函数的参数个数。

       arguments 转数组

        Array.prototype.silce.call(arguments);  // 或者使用  [].slice.call(arguments);

       修改 arguments 值

      function foo(a) {

          "use strict";

          console.log(a, arguments[0]);

          a = 10;

          console.log(a, arguments[0]);

          arguments[0] = 20;

          console.log(a, arguments[0]);

      }

      foo(1);

      // 1 1    //10 1    //10 20

      非严格模式的例子:

      function foo(a) {

          console.log(a, arguments[0]);

          a = 10;

          console.log(a, arguments[0]);

          arguments[0] = 20;

          console.log(a, arguments[0]);

      }

      foo(1);

      // 1 1    //10 10     //20 20

      在严格模式下,函数中的参数与 arguments 对象没有联系,修改一个值不会改变另一个值。而在非严格模式下,两个会互相影响。

    3.  数组与类数组对象

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

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

    const arr = [ "a", "b" ];

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

      下面看看类数组对象。

      伪数组的特性就是长得像数组,包含一组数据以及拥有一个 length 属性,但是没有任何 Array 的方法。再具体的说,length 属性是个非负整数,上限是 JavaScript 中能精确表达的最大数字;另外,类数组对象的 length 值无法自动改变

      

  • 相关阅读:
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第4章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第3章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第1,2章 读书笔记(待更新)
    Tkinter的Message组件
    Git 实操/配置/实践
    mysq5.7.32-win安装步骤
    行为型模式之模板方法
    结构型模式之组合模式
    结构型模式之享元模式
    结构型模式之外观模式
  • 原文地址:https://www.cnblogs.com/syomm/p/6013542.html
Copyright © 2011-2022 走看看