Javascript ECMA-262返回装置

Javascript ECMA-262返回装置,javascript,ecma262,ecmascript-6,Javascript,Ecma262,Ecmascript 6,最近,我阅读了ECMAScript语言规范。我不打算看整个说明书,我只是选了一些零件。我遇到了很多问题,其中一个是这样的: 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 据

最近,我阅读了ECMAScript语言规范。我不打算看整个说明书,我只是选了一些零件。我遇到了很多问题,其中一个是这样的:

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

据我了解,应该是这样的:

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
var len=ToInteger(参数);//第一步
len=返回一个brupt(len);//步骤2
//步骤3

如果(len符合ECMAScript规范

术语“突然完成”是指具有[[类型]]的任何完成 非正常值

完成记录是一个“对象”,有三个数据成员:类型、值和目标

及 是完成记录的一个例子


尽管如此,还不清楚xd,也许您需要进一步阅读阅读。

我的理解是,在ES 6中,当计算表达式时,它返回一个完成记录(这是一个用于解释行为的规范设备),其中包含有关计算表达式结果的信息

在上面的例子中,如果参数是一个突然完成记录(即,它的类型不是正常的),则返回它

如果参数不是突然完成记录,则返回其值


这本质上意味着,如果参数到整数的转换正常,则返回该值。否则,返回一个错误值。

您可以从阅读不再开发的ES 5.1规范开始。的可能重复项