Пожалуйста, интерпретируйте эту строку кода Java-сценария
Может кто-нибудь интерпретировать эту строку JavaScript для меня?
mouseWheelEventName = $.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel',
Нужно знать что "?" и что DOMMouseScroll: mousewheel, в частности, говорит "," в конце строки... почему это не ";"
Спасибо.
1 ответ
Это троичный оператор, используемый в качестве условного обозначения:
это то же самое, что сказать:
if ($.browser.mozilla) {
mouseWheelEventName = 'DOMMouseScroll';
} else {
mouseWheelEventName = 'mousewheel';
}
Первый кусок перед =
объявляет переменную (mouseWheelEventName) в зависимости от следующего условия.
Следующая часть между =
?
это условие (есть $.browser.mozilla
правда?).
Сразу после ?
это then
часть (если условие истинно, установите переменную mouseWheelEventName в строку DOMMouseScroll
).
После :
это другое (если условие НЕ истинно, установите переменную mouseWheelEventName в строку mousewheel
).
Дополнительное чтение: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
Что касается того, почему в конце стоит запятая, нам нужно увидеть более полный пример кода, включающий в себя то, что следует сказать наверняка. Если бы мне пришлось угадывать, я бы сказал, что автор кода цепочки переменных операторов. Этот ответ может пролить некоторый свет на вас: лучшие практики Javascript, зачем использовать запятую для цепочки объявлений функций / переменных? (см. выбранный ответ)