Я должен всегда использовать операторы AndAlso и OrElse?

Вот несколько известных библиотек, которые обрабатывают обнаружение браузера.

Bowser by lancedikson - 2,713 ★ s - Последнее обновление 12 марта 2018 г. - 2.9KB

console.log(bowser);
document.write("You are using " + bowser.name +
               " v" + bowser.version + 
               " on " + bowser.osname);

Platform.js by bestiejs - 1912 ★ s - Последнее обновление 23 января 2018 г. - 5.9KB

]

console.log(platform);
document.write("You are using " + platform.name +
               " v" + platform.version + 
               " on " + platform.os);

Detect.js by darcyclarke - 501 ★ s - Последнее обновление Oct 26, 2015 - 2.9KB

var result = detect.parse(navigator.userAgent);
console.log(result);
document.write("You are using " + result.browser.family +
               " v" + result.browser.version + 
               " on " + result.os.family);

jQuery Browser от gabceb - 485 ★ s - Последнее обновление 23 ноября 2015 г. - 1.3KB

console.log($.browser)
document.write("You are using " + $.browser.name +
               " v" + $.browser.versionNumber + 
               " on " + $.browser.platform);

Обнаружение браузера (ARCHIVE) QuirksMode - Последнее обновление 14 ноября 2013 г. - [88]

Дальнейшее чтение

47
задан ckittel 28 September 2011 в 12:20
поделиться

2 ответа

От MSDN:

Компромиссы Замыкания накоротко

Замыкание накоротко может улучшить производительность, не оценив выражение, которое не может изменить результат логической операции. Однако, если то выражение выполняет дополнительные действия, закорачивая пропуски те действия. Например, если выражение включает вызов в Функциональную процедуру, ту процедуру не называют, если выражение закорачивается, и любой дополнительный код, содержавшийся в Функции, не работает. Если Ваша логика программы зависит от какого-либо того дополнительного кода, необходимо, вероятно, постараться не закорачивать операторы.

34
ответ дан Vaibhav 26 November 2019 в 19:53
поделиться

там когда-нибудь обстоятельство, при котором я не хотел бы использовать оператор AndAlso, а не И оператор?

Уверенный: если Вы хотите удостовериться, что оба стороны выражения оценены. Это могло бы иметь место, если, например, обе стороны являются вызовами метода, которые возвращают булевские переменные в результате некоторой другой операции, которая имеет побочный эффект.

, Но в целом, используйте AndAlso / OrElse каждый раз, когда Вы использовали бы && / || в C/C ++/C#, который, конечно, является подавляющим большинством времени.

17
ответ дан Joel Coehoorn 26 November 2019 в 19:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: