GoogleAppsScript / Javascript Вопрос о синтаксисе ... Мне нужна некоторая семантика, касающаяся поведения машины - PullRequest
0 голосов
/ 13 июля 2020

Я работал с экосистемой 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? Кто-нибудь перечислит мне здесь порядок операций?

Сэр-спасибо-много

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...