【问题标题】:Why does Array.length- - not subtract 1?为什么 Array.length- - 不减 1?
【发布时间】:2021-10-25 11:32:03
【问题描述】:

当我跑步时: var a = ["a", "b", "c"] console.log(a.length--) 它打印 3,但是当我运行时: var a = ["a", "b", "c"] console.log(a.length-1) 它打印 2. 为什么?减1不等于减1吗? 提前致谢。

【问题讨论】:

  • a-- 是减量后它的第一次打印然后减量,但你应该在这里使用 --a 是先减量然后打印的预减量。

标签: javascript arrays decrement


【解决方案1】:

decrement operator (--) 递减(减一)其操作数并返回一个值。

如果使用后缀,操作数后面有运算符(例如,x--),减量运算符减量并返回减量前的值。

如果使用前缀,在操作数之前加上运算符(例如,--x),减量运算符减量并返回减量后的值。

let x = 3;
const y = x--;

console.log(`x:${x}, y:${y}`);
// expected output: "x:2, y:3"

let a = 3;
const b = --a;

console.log(`a:${a}, b:${b}`);
// expected output: "a:2, b:2"

【讨论】:

    【解决方案2】:

    在 Java 脚本中,您有 2 个不同的快捷方式可以将 int 减一。第一个是您在此处使用的:val--,第二个是--val。 如果您单独使用它们中的任何一个,则意味着您有一行仅包含 val-- 仅此而已,它们会做同样的事情(减一),但如果您将它们与其他东西一起使用(例如 console.log),它们会产生不同的效果. 如果您使用 val——程序将首先记录 val,然后减一。但如果你使用 --val ,它会先减一,然后记录新值。

    展示这一点的代码:

    Var a = 3;
    Var b = 3;
    
    Console.log(a--);
    //will print 3
    Console.log(--b);
    //will print 2
    
    Console.log(a);
    //prints 2
    Console.log(b)
    //prints 2
    

    换句话说,val-- 的作用是从下一行开始减一

    【讨论】:

      【解决方案3】:

      它确实从长度中减去 1,但发布的代码不会尝试观察结果:长度为 2 的数组。

      var a = ["a", "b", "c"];
      console.log(a.length--)
      console.log(a);

      【讨论】:

        猜你喜欢
        • 2020-08-03
        • 2022-01-02
        • 2016-05-03
        • 2019-11-16
        • 2019-06-26
        • 1970-01-01
        • 1970-01-01
        • 2015-03-28
        • 1970-01-01
        相关资源
        最近更新 更多