result
— строка, в которую добавляем звёздочки и иногда символы переноса строки. В конце её возвращаем. В начале она просто пустая строка ""
— это позволяет потом к ней сложением добавлять строку. let result;
, то переменная сначала была бы со значением undefined
, а «прибавление» к ней звёздочки дало бы строку "undefined*"
location = /path/to/file.php
..file.php
? return 411;
и return 412;
чтобы посмотреть, которым из них обрабатывается запрос к беспарольному файлу.if .. else
для выполняемых действий, а именно для получения значения ??
слева окажется null
или undefined
, то вернётся то, что справа. Иначе то, что слева.undefined ?? 'a' // "a"
null ?? 'b' // "b"
0 ?? 'c' // 0
false ?? 'd' // false
100 ?? 200 // 100
?.
и ??
object?.property
это почти то же, что и object.property
, но если свойства property
у объекта нет, это не вызовет ошибки, а просто вернёт undefined
. Так можно в длинной цепочке свойств не проверять каждый шаг, а просто сразу всю цепочку записать, как я и сделал в ответе.