最近、ECMAScript 言語仕様を読みました。仕様全体を読むつもりはなかったので、一部だけ抜粋しました。私は多くの質問に出くわしました.そのうちの1つは次のようなものです:
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.引数が突然の完了の場合、引数を返します。
2.それ以外の場合、argument がCompletion Recordの場合は、 argument を argument.[[value]] とします。
突然の完了とは何ですか?それと完了レコードの違いは?