Я работал с экосистемой GAS, чтобы узнать о некоторых основах Javascript и компьютерного программирования в целом. Пробираясь сквозь них, я получил регистратор, который печатает на листе около 163 строк кода. Регистратор работает прекрасно, и я использую его для изучения основ Javascript в этом контексте. Я хотел бы понять поведение машины за двумя циклами for и операторами let в функции. Функция следующая:
function printOrdinals() {
const rowBoundary = 7;
const colBoundary = 3;
const result = [];
**for (let i = 1; i <= rowBoundary; i++) { // i = 1, 2, 3 ... 7
let row = [];
for (let j = 0; j < colBoundary; j++) { // j = 0, 1, 2
row.push(i + j * rowBoundary); // when 1 = 1, reult for row is 1, 8, 15
}
result.push(row);**
}
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('print_primes_canvas')
.getRange(1, 1, rowBoundary, colBoundary)
.setValues(result);
}
Мой вопрос касается поведения операторов for и let. Я вижу объявления for с указанными параметрами. Я не понимаю цель оператора let в параметрах обеих переменных i и j. Я понимаю необходимость массивов. Меня сбивает с толку поведение синтаксиса ...
row.pu sh (i + j * rowBoundary);
Когда Регистратор печатает на листе, он делает то, что я хочу, но зачем? Применяя порядок операций, кажется разумным, что оператор умножения будет обрабатываться первым. Здесь я разваливаюсь. Как (i + j * rowBoundary) печатает способом, описанным в комментариях к функции, где первая строка занимает 1, 8, 15, а вторая строка - 2, 9, 16 и т. Д. c? Кто-нибудь перечислит мне здесь порядок операций?
Сэр-спасибо-много