Gần đây, tôi đọc Đặc tả ngôn ngữ ECMAScript. Tôi đã không có kế hoạch để đọc toàn bộ đặc điểm kỹ thuật, tôi chỉ nhặt một số phần. Tôi đến qua nhiều câu hỏi, một trong số họ là như thế này: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).
Theo tôi được biết, nó phải là như thế này:
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
Tôi không hiểu những gì ý nghĩa của ReturnIfAbrupt (len) là, và tôi thấy điều này:
1.Nếu đối số là abrupt completion, sau đó trả về đối số.
2.Ese nếu đối số là Completion Record, sau đó để đối số là đối số. [[Value]].
Hoàn thành đột ngột là gì, và sự khác biệt giữa nó và hồ sơ hoàn thành? Họ có thể kết hợp một bước: Nếu đối số là Completion Record, sau đó trả về đối số. Bất kỳ đề xuất nào sẽ được biết ơn!
Bạn có thể bắt đầu đọc đặc điểm kỹ thuật ES 5.1, không còn phát triển nữa. – Bergi
Bản sao có thể có của [ReturnIfAbrupt có nghĩa là gì trong bản dự thảo ES6?] (Http://stackoverflow.com/questions/12995554/what-does-returnifabrupt-mean-in-es6-draft) –