Я просмотрел код для angularjs factory, чтобы лучше понять, как он работает. Код содержит оператор if
, который я не совсем понимаю.
В демо-версии plnkr автор написал следующее:
if ((+!!config.template) + (+!!config.templateUrl) !== 1) {
throw new Error('Expected modal to have exactly one of either `template` or `templateUrl`');
}
Он немного отличается в репозитории github:
if (!(!config.template ^ !config.templateUrl)) {
throw new Error('Expected modal to have exactly one of either `template` or `templateUrl`');
}
Очевидно, что сообщение об ошибке проверяет наличие одного из двух. Я просто не знаю, как это получается. Я не смог найти информацию о ^
или +!
Мой вопрос: как это работает оператор if? (^
или +!
или +!!
)