草庐IT

new_array

全部标签

javascript - 即使忘记了 `new`,我什么时候应该自动创建一个对象?

假设我有以下对象构造函数:functionFoo(bar){this.bar=bar;}如果我在没有new关键字的情况下在全局范围内运行函数,那么bar将被设置在调用Foo()的任何范围内在:varfoo=Foo(42);console.log(bar);//42console.log(foo.bar);//ERROR所以我的想法是做这样的事情:functionFoo(bar){if(!(thisinstanceofFoo)){//returnaFooobjectreturnnewFoo(bar);}this.bar=bar;}那样的话,如果我执行newFoo(42)或Foo(42),

javascript - 为什么不带括号调用 new Date?

这个问题在这里已经有了答案:Canweomitparentheseswhencreatinganobjectusingthe"new"operator?(6个答案)关闭6年前。我刚刚在不小心打开Gmail中的开发工具时看到了这个片段:varGM_TIMING_END_CHUNK1=(newDate).getTime();我通常会期待这样的事情,因为不带括号调用构造函数是相当不常见的(至少我直到现在才见过它):varGM_TIMING_END_CHUNK1=newDate().getTime();或varGM_TIMING_END_CHUNK1=Date.now();//newerbro

javascript - Array(n) 和 Array(n).fill 之间的区别?

我注意到如果我这样做:Array(n).map(()=>console.log('test'))我没有打印任何东西。但是如果我这样做:Array(n).fill().map(()=>console.log('test'))我test打印了n次。为什么会这样?如果我执行Array(n).length我会返回n。我在REPL中注意到Array(5)返回:[,,,,]而Array(5).fill()返回:[未定义,未定义,未定义,未定义,未定义]在这两种情况下,typeof数组中的任何元素===undefined。那么,这是怎么回事? 最佳答案

javascript - Array.prototype.filter() 的就地替代方法是什么

我有一个数组,我想从中删除一些元素。我不能使用Array.prototype.filter(),因为我想就地修改数组(因为它节省了内存分配,而且对我来说更重要的是,它使我的代码更简单用例)。是否有我可以使用的filter的就地替代方案,可能类似于Array.prototype.forEach()canbeusedasanin-placevarianttoArray.prototype.map()的方式?编辑:应要求提供的最小示例:functionsomeCallback(array){//dosomestuffarray.filterInPlace(function(elem){var

javascript - 使用 "new RegExp"和使用正斜杠符号创建正则表达式有什么区别?

使用newRegExp("regex");和/same_regex/来测试目标字符串有什么区别吗?我问这个问题是因为我在使用这两种方法时得到了不同的验证结果。这是我用来验证电子邮件字段的片段:varemail="didxga@gmail.comblah@foo.com";varregex1=newRegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$");v

javascript - 对使用 `map` 创建的数组上 `new` 的行为感到困惑

这个问题在这里已经有了答案:UndefinedvaluesinArray(len)initializer(5个答案)关闭7年前。我对mapping一个用new创建的数组的结果感到困惑:functionreturnsFourteen(){return14;}vara=newArray(4);>[undefinedx4]inChrome,[,,,,]inFirefoxa.map(returnsFourteen);>[undefinedx4]inChrome,[,,,,]inFirefoxvarb=[undefined,undefined,undefined,undefined];>[und

javascript - 如何使用类型缺少调用或构造签名的表达式解析 ' error TS2351: Cannot use ' new'?

我正在将一个名为Auth.js的.js文件(所以不是.ts文件)导入到我的reactjs和typescript应用程序中,所以在我的组件中我有这个:import*asAuthfrom'../Auth/Auth';..constauth=newAuth();这是我的Auth.js的一部分:exportdefaultclassAuth{auth0=newauth0.WebAuth({domain:AUTH_CONFIG.domain,clientID:AUTH_CONFIG.clientId,redirectUri:AUTH_CONFIG.callbackUrl,audience:`htt

javascript - 如何修复 JSLint "missing new"错误

下面的代码通过了JSLint导致错误:Problematline8character9:Missing'new'.ResizeGrid();如何修复?"usestrict";varResizeGrid;functiont(){varx;if(x){ResizeGrid();}} 最佳答案 勾选Tolerateuncapitalizedconstructors或重命名为resizeGrid();以防止lint假定其为函数构造函数(尽管调用未定义的var这样会引发其他错误)。 关于javas

javascript - 关于 JavaScript new Date() 和 Date.parse()

varexampleDate='23-12-201023:12:00';我想将上面的字符串转换成一个date并尝试了一些事情:vardate=newDate(exampleDate);//returnsinvalidDatevardate1=Date.parse(exampleDate);//returnsNAN此代码在IE和Opera中运行良好,但date返回无效的Date并且date1在Firefox中返回NAN。我该怎么办? 最佳答案 您示例中的字符串不是浏览器可识别的任何标准格式。ECMAScript规范要求浏览器只能解析一

Javascript:什么查找更快:array.indexOf vs 对象哈希?

我必须执行很多查找,同时解析xmlStream是否需要某些标记。我可以使用array.indexOf方法(我在数组中有大约15个项目)或使用对象[键]查找。第二个解决方案在理论上对我来说似乎更有效,但在我的代码中看起来不太好。但如果它真的更有效率,我会保持原样。例如:vartags=['tag1','tag2','tag3',...];vartags2={'tag1':null,'tag2':null,'tag3':null,}tags.indexOf(value)//exists?tags2[value]//exists? 最佳答案