Пожалуйста, интерпретируйте эту строку кода 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, зачем использовать запятую для цепочки объявлений функций / переменных? (см. выбранный ответ)

Другие вопросы по тегам