我已经在Firefox-3.5.7 / Firebug-1.5.3和Firefox-3.6.16 / Firebug-1.6.2中观察到了这一点
当我启动Firebug时:
var x = new Array(3)
console.log(x)
// [undefined, undefined, undefined]
var y = [undefined, undefined, undefined]
console.log(y)
// [undefined, undefined, undefined]
console.log( x.constructor == y.constructor) // true
console.log(
x.map(function() { return 0; })
)
// [undefined, undefined, undefined]
console.log(
y.map(function() { return 0; })
)
// [0, 0, 0]
这里发生了什么?这是一个错误,还是我误会了如何使用new Array(3)
?
看来第一个例子
x = new Array(3);
用未定义的指针创建一个数组。
第二个对象创建一个带有指向3个未定义对象的指针的数组,在这种情况下,它们自身的指针不是未定义的,只有它们指向的对象才是未定义的。
y = [undefined, undefined, undefined]
// The following is not equivalent to the above, it's the same as new Array(3)
y = [,,,];
由于map是在数组中对象的上下文中运行的,因此我相信第一个map根本无法运行该函数,而第二个map可以运行。
问题内容: 我有一个.txt文本文件,其中包含一些行。。我使用RequestBuilder对象加载了contains,并用word = String.split(“ \ n”);拆分了responseText。但我想知道,为什么结果包含“ \ n”部分。例如,我的文字: 结果是 非常感谢您的帮助。提前致谢。 问题答案: Windows回车()不应对您的结果产生明显的影响,也不必对传递给的正则表达式
问题内容: 这段代码: 在Chrome中产生以下输出: 这是为什么? 问题答案: 通过检查对象以异步方式进行。控制台同步接收到对对象的引用,但在对象被扩展之前不会显示对象的属性(在某些情况下,取决于浏览器以及日志发生时是否打开了开发工具)。如果在控制台中检查对象之前已对其进行了修改,则显示的数据将具有更新的值。 例如,Chrome会在一个方框中显示一点,悬停时说: 记录时左边的对象值已被快照,下面
我想做一个这样的数组: 从HTML中取出,如下所示: 但我得到的数组是这样的:
实际上 JavaScript 是一个相当简洁的语言,但是也难免会有一些怪癖(quirks)。本系列文章,需要您了解 ECMAScript 5 和 JavaScript 的基本知识,凡涉及到比较复杂的,文章中将会给出解释。
问题内容: 对于几种语言,已经多次询问了此信息,但我无法使其正常工作。我有这样的字符串 而且我想,以取代与使用 但不会被替换。我试图使用此RegEx工具进行验证,但看到的结果相同。输入的字符串不匹配。我究竟做错了什么 ? 问题答案: 这个对我有用。 结果: 您的问题在其他地方。
在这个项目中,我试图弄清楚两个日期之间的差异有多长。一个日期是当前日期,另一个是一个人选择的日期。我遇到的问题是,由于变量中的日期是字符串,而不是数字,所以我得到了nan。我尝试使用parseInt()属性,但是,这给了我8个值,这并不是now和New Years eve之间的区别。那么,我如何将一个变量更改为一个数字,但要保持它的日期格式呢? 这是我当前的代码,既用于查找未来日期,也用于查找差异