В this question один ответ заключается в следующем:логика OR между числами
Number.prototype.roundTo = function(nTo) {
nTo = nTo || 10;
return Math.round(this * (1/nTo)) * nTo;
}
Что это значит? Зачем мне это нужно?
nTo = nTo || 10;
В this question один ответ заключается в следующем:логика OR между числами
Number.prototype.roundTo = function(nTo) {
nTo = nTo || 10;
return Math.round(this * (1/nTo)) * nTo;
}
Что это значит? Зачем мне это нужно?
nTo = nTo || 10;
Это значение часто используется в Javascript для значений по умолчанию.
Логическое ИЛИ (||
) возвращает первое значение, если truty или второе, если первое является ложным. Когда функция ожидает параметр, который не передается, значение, которое получает функция, равно undefined
, что является ложным. Это означает, что
var x = parm || default_value;
будет использовать default_value
в случае parm
не передавалась.
Если значение 0
или пустая строка ""
, однако, приемлемым в качестве значения параметра это не будет работать, так как 0
и пустая строка также falsy.
Кроме того, если значение параметра также может быть undefined
(то есть undefined
должно использоваться, а не по умолчанию) единственным решением является проверка arguments.length
.
Пожалуйста, не используйте 'default' как имя переменной, потому что это ключевое слово языка ... – Nayuki
nTo = nTo || 10;
Может быть реализован как коротка для
nTo = nTo ? nTo : 10;
, который в свою очередь, является коротким для
if (nTo) {
nTo = nTo;
} else {
nTo = 10;
}
Если nTo
не является falsy значение, то nTo
будет назначен nTo
, иначе 10
будет присвоен nTo
.
От http://docs.nodejitsu.com/articles/javascript-conventions/what-are-truthy-and-falsy-values
Список JavaScript falsy ценности
false // obviously
0 // The only falsy number
"" // the empty string
null
undefined
NaN
Это означает, что если нет 'nTo' аргумент не указан, использовать произвольный' 10' вместо этого. Это похоже на значение по умолчанию. – Utkanos