当前位置: 首页 > 面试题库 >

Array(len)初始化程序中的未定义值

曾奇略
2023-03-14
问题内容

考虑:

var a = Array(3);
var b = [undefined,undefined,undefined];

那是什么原因a.mapb.map产生不同的结果?

a.map(function(){  return 0;  });  //produces -> [undefined,undefined,undefined]
b.map(function(){  return 0;  });  //produces -> [0,0,0]

问题答案:

数组构造函数创建具有给定长度的数组。它并不会创建密钥。Array.prototype.map的回调函数仅针对列表中的元素执行。
也就是说,这是与一个键(整数)0≤相关联的所有值 < 长度

  • Array(3)的键为零,因此.map永远不会触发回调。
  • [void 0, void 0, void 0] 有三个键,为其执行回调函数。
    Array(3).hasOwnProperty(0);                 // false
    

    [void 0, void 0, void 0].hasOwnProperty(0); // true

该规范及其polyfill在MDN中提及。在第47行,if(k in O) {显示回调函数未处理不存在的键。



 类似资料:
  • 我正在使用这个库,对于它的一个类(从ViewGroup扩展而来),在“PLA\u AbsListView.java”中,在CTOR中,有以下几行代码: 最近,我更新了SDK 自从我更新了所有内容后,我一直收到这个错误: PLA\u AbsListView类型的方法initializeScrollbars(TypedArray)未定义 我尝试将API设置为低于21,但没有帮助。 我还试图找出这个函数

  • 问题内容: 因此,我刚刚升级到Xcode 6.3 Beta 3,出现了许多与以下内容有关的错误: 初始化程序不会覆盖其父类中的指定初始化程序。 例如,这是一个类: 这是我的课程之一: 问题答案: 我的解决方案是一种快速解决方案,但我认为它比Apple在发行说明中的​​用途要容易。有关更多信息,请在此处搜索19775924 http://adcdownload.apple.com//Develope

  • 问题内容: 在Java中,但是在其他OO语言中,初始化属性定义之间也有区别,例如 并使用构造函数对其进行初始化? 我想不出任何实际的区别,有没有?否则,即使结果相同,是否存在一种方法优于另一种方法的情况? 问题答案: 初始化顺序在这里很重要。 将字段设置为默认初始值(0,false,null) 调用对象的构造函数(但不要执行构造函数的主体) 调用超类的构造函数 使用初始化程序和初始化块初始化字段

  • 根据此堆栈溢出问题的公认(且唯一)答案, 使用 将改为零初始化对象。 那么,为什么呢?, 生成此输出: 定义的两个构造函数都是默认的?正当对于POD类型,默认初始化为零初始化。 根据这个问题的公认答案, 如果POD成员未在构造函数中初始化,也未在类初始化中通过C11初始化,则默认为已初始化。 不管是堆栈还是堆,答案都是一样的。 在C 98中(而不是之后),new int()被指定为执行零初始化。

  • Swift 5.x String初始化、定义 1. 字面量初始化字符串 1.1 单行字面量字符串 let str = "some string" 1.2 字面量初始化多行字符串 let str = """ The white Rabbit put on his spectacles. "Where shell I begin, please your Majesty?" he asked. "

  • 10.6.1.程序初始化 现在用户启动程序就会首先看到Timeline界面。但是用户必须先设置个人选项并启动Service,否则就没有消息显示。这很容易让人摸不着头脑。 一个解决方案是,在启动时检查用户的个人选项是否存在。若不存在,就跳到选项界面,并给用户一个提示,告诉她下一步该怎么做。 ... @Override protected void onCreate(Bundle savedInsta