【发布时间】:2013-12-30 07:03:02
【问题描述】:
最近,我阅读了 ECMAScript 语言规范。我不打算阅读整个规范,我只是拿起了一些部分。我遇到了很多问题,其中一个是这样的:
1.Let len be ToInteger(argument).
2.ReturnIfAbrupt(len).
3.If len ≤ +0, then return +0.
4.Return min(len, 2^53-1).
据我了解,应该是这样的:
var len = ToInteger(argument); // step 1
len = ReturnIfAbrupt(len);// step 2
// step 3
if(len<=0){
return +0; //-0 is OK too?
}
return Math.min(len, Math.pow(2,53)-1); // step 4
没看懂ReturnIfAbrupt(len)是什么意思,结果发现是这样的:
1.如果参数是abrupt completion,则返回参数。
2.Else 如果参数是Completion Record,则令参数为参数。[[值]]。
什么是突然完成,它与完成记录的区别?他们可以结合一个步骤:如果参数是Completion Record,则返回参数。任何建议将不胜感激!
【问题讨论】:
-
您可以先阅读 ES 5.1 规范,该规范不再处于开发阶段。
标签: javascript ecma262 ecmascript-6