Array.size() vs Array.length如果

2022-08-29 23:17:07

两者之间有什么区别?

所以我知道这是一个函数,而它是一个属性。有没有一个用例可以使用另一个?一个更有效率吗?(我想象得更快,因为它是一个属性而不是一个方法调用?为什么会使用较慢的选项?是否有某些浏览器与其中一个或另一个不兼容?array.size()array.length.length

  var x = [];
  console.log(x.size());
  console.log(x.length);
  console.log(x.size()==x.length);
  x =[1,2,3];
  console.log(x.size());
  console.log(x.length);
  console.log(x.size()==x.length);

将打印:

  0, 0, true
  3, 3, true

答案 1

Array.size() 不是有效的方法

始终使用长度属性

有一个库或脚本将 size 方法添加到数组原型中,因为这不是本机数组方法。这样做通常是为了添加对自定义 getter 的支持。使用它的一个例子是当你想在内存中获取数组的大小时(这是我唯一能想到的对这个名字有用的事情)。

不幸的是.js定义了一个实际返回对象或数组长度的方法。不幸的是,由于函数的长度属性被定义为函数声明的命名参数的数量,因此它们必须使用替代项并选择大小(计数将是更好的选择)。size


答案 2

.size()不是一个原生的JS函数(至少在我所知道的任何浏览器中都没有)。Array

.length 应该使用。


如果

.size() 确实可以在您的页面上工作,请确保您没有任何额外的库,例如与原型混淆的原型。Array

您的浏览器上可能有一些插件与原型混淆。Array