target = target || null
будет работать.
То, что вы делаете здесь, - объявляете локальную переменную в области действия функции.
Внутри каждой функции создается локальная переменная, соответствующая имени параметров, для хранения переданного значения,
Если параметры не переданы, они останутся как неопределенная локальная переменная.
function (a, b) {
//a, b are declared.
}
то, что делает target = target || null
, это просто присвоение значения объявленной локальнойпеременная использует выражение ||
:
Значение выражения ||
определяется по первым возвращаемым операндам true
.
true || 2
будет оцениваться как true
false || 2
будет оцениваться как 2