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
. Так можно в длинной цепочке свойств не проверять каждый шаг, а просто сразу всю цепочку записать, как я и сделал в ответе. console.trace()
покажет цепочку из всех вызовов: const limit = 3;
function sendSomething(counter = 0) {
counter++;
// заряжаем паузу до следующей отправки
if (counter < limit) {
setTimeout(sendSomething, 0, counter);
} else {
console.log("Done", limit, counter);
console.trace();
}
}
sendSomething() // поехали!
sendSomething debugger eval code:11
(Async: setTimeout handler)
sendSomething debugger eval code:8
(Async: setTimeout handler)
sendSomething debugger eval code:8
<anonymous> debugger eval code:15
`
(наз. backtick) в JS строка текста может содержать и переносы строк и включать результат выполнения JS в теге ${ }
await
нельзя использовать в обычных функциях
"12.34"
Цифр 4 а выведет 5.Или отрицательное число
"-1234"
В экспоненциальной записи
"1e6"
(один миллион)