Vor kurzem las ich die ECMAScript Language Specification. Ich hatte nicht vor, die ganze Spezifikation zu lesen, ich habe nur ein paar Teile aufgenommen. Ich kam viele Fragen kreuzen, einer von ihnen ist wie folgt:ECMA-262 ReturnIfAbrupt
1.Let len be ToInteger(argument).
2.ReturnIfAbrupt(len).
3.If len ≤ +0, then return +0.
4.Return min(len, 2^53-1).
Wie ich verstehe, sollte es so aussehen:
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
Ich verstand nicht, was die Bedeutung dies von ReturnIfAbrupt (len) ist, und ich fand:
1.If Argument ist ein abrupt completion, dann Argument zurück.
2.Else wenn Argument ein Completion Record ist, dann lassen Sie Argument Argument sein. [[Wert]].
Was ist abrupte Vervollständigung, und die Unterschiede zwischen ihm und Vervollständigungsaufzeichnung? Können sie einen Schritt kombinieren: Wenn Argument ein Completion Record ist, dann Rückkehr Argument. Jeder Vorschlag wird dankbar sein!
Sie könnten mit dem Lesen der ES 5.1-Spezifikation beginnen, die nicht mehr in der Entwicklung ist. – Bergi
Mögliches Duplikat von [Was bedeutet ReturnIfAbrupt im ES6-Entwurf?] (Http://stackoverflow.com/questions/12995554/what-does-returnifabrupt-mean-in-es6-draft) –