草庐IT

ecma-international

全部标签

javascript - ECMA-262 7.0 获取值(V)

谁能举例说明这个算法是如何工作的?GetValue(V)#1.ReturnIfAbrupt(V).2.IfType(V)isnotReference,returnV.3.LetbasebeGetBase(V).4.IfIsUnresolvableReference(V)istrue,throwaReferenceErrorexception.5.IfIsPropertyReference(V)istrue,thena.IfHasPrimitiveBase(V)istrue,theni.Assert:Inthiscase,basewillneverbenullorundefined.ii

javascript - 为什么这个可配置属性不可删除?

可配置的属性似乎是可删除的:varo={};Object.defineProperty(o,'prop',{configurable:true,value:'val'});deleteo.prop;//trueo.prop;//undefined但它在以下情况下不起作用,至少在Firefox和Chrome上:varform=document.createElement('form'),input=document.createElement('input');form.appendChild(input);varelems=form.elements;Object.getOwnProp

javascript - 是否可以访问 ES 5-8.6.2 中定义的 "internal"对象属性?

“内部”是指那些在ES58.6.2中定义的:http://www.ecma-international.org/publications/standards/Ecma-262.htm可以通过使用访问[[Class]]内部属性Object.prototype.toString(Object)这些属性的用途是什么?它们是可访问的吗?该规范并未声称定义了一种修改方法(p32-footer)。NOTEThisspecificationdefinesnoECMAScriptlanguageoperatorsorbuilt-infunctionsthatpermitaprogramtomodify

javascript - 为什么在 JS 中 +str 比 str*1 更好地将字符串转换为数字?

假设我有一个字符串,它的值已经是一个数字,例如varstr="1234"现在我想把它转换成数字。到目前为止,我在网上看到了两个技巧,使用一元+:varnum=+str使用乘法运算符*:varnum=str*1我想知道一般来说哪个更好。正如我从此处已接受答案的评论中看到的那样:ConvertingJsonResultstoaDate,似乎最好避免使用*1。这是真的吗?背后的原因是什么? 最佳答案 基本上操作更少。一元加号调用内部的toNumber方法,而乘法运算符也调用toNumber,然后对其进行数学运算。为什么要执行额外的步骤?h

Javascript (ECMA-6) 类魔术方法 __call 像 PHP

这是我的用例getSomeFields(persons,fields){letpersonsWithSpecificFields=[];_.each(persons,(person)=>{letpersonSpecificFields={};_.each(fields,(field)=>{//hereimthinkingtomodifythefieldtomatchthemethodname//(ifsomethinglike__callasinphpisavailable)//e.g.fieldisfirst_nameandiwanttochangeittogetFirstNamep

javascript - Ecma-262 (EcmaScript 5) 将如何帮助您?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。ImprovethisquestionEcmaScript第五版,或Ecma-262,已公布并包含对语言的一些更改。新版本中的哪些功能将帮助您编写更好的代码?

javascript - 考虑到最佳实践,我们可以使用双一元运算符吗!在 JavaScript 中?

根据我的理解,一元!运算符执行隐式类型转换,有时用于类型转换。所以基本上!运算符将其操作数转换为bool值并将其取反。现在:!!x//SameasBoolean(x)事实上:!!'true'===Boolean('true')//true所以我假设!!x和Boolean(x)执行相同的操作。我想知道:您是否知道任何使我的假设错误的注意事项?就良好实践而言,应首选哪种方式?您知道不同的ECMAScript版本或浏览器vendor之间有什么需要注意的差异吗? 最佳答案 您的假设是正确的。这正是它的工作原理,我不知道使用它时需要特别小心。

javascript - ECMA6 生成器 : yield promise

据我了解,ECMA6生成器应该能够屈服于返回promise的函数,最终返回已解决/拒绝的函数。让代码读起来更像同步代码,避免回调hell。我正在使用带有--harmony和以下代码的node.jsv0.12.2。varsomeAsyncThing=function(){returnnewPromise(function(resolve,reject){resolve("I'mResolved!");});};someAsyncThing().then(function(res){console.log(res);});//Worksasexpected:logsI'mResolved!

javascript - 错误 : Enzyme Internal Error: unknown composite type undefined

我在尝试应用enzyme时遇到此错误,但我找不到任何相关问题。这是test.js;importReactfrom'react';importAccountLoginFormfrom'./LoginPage';importsinonfrom'sinon';import{mount,shallow,configure}from'enzyme';import{expect}from'chai';importAdapterfrom'enzyme-adapter-react-15';importconfigureStorefrom'redux-mock-store';configure({ada

javascript - JavaScript 随机函数会返回 0 或 1 吗?

JavaScript的Math.random()能否准确返回0或1? 最佳答案 来自ECMAScript规范:ReturnsaNumbervaluewithpositivesign,greaterthanorequalto0butlessthan1,chosenrandomlyorpseudorandomlywithapproximatelyuniformdistributionoverthatrange,usinganimplementation-dependentalgorithmorstrategy.Thisfunctiont