Почему функция возвращает "undefined"?
Почему check возвращает "undefined", а check2 - нормальный результат?
function check(url) {
return
typeof url != 'undefined' &&
url != '' &&
url != location.protocol + '//' + location.hostname;
}
function check2(url) {
var result =
typeof url != 'undefined' &&
url != '' &&
url != location.protocol + '//' + location.hostname;
return result;
}
https://jsfiddle.net/5c2wb689/
Ответы (2 шт):
Автор решения: Air
→ Ссылка
В одну строку надо писать.
Скорее просто перед return не должно быть перехода на следующую строку
function check(url) {
return typeof url != 'undefined' && url != '' && url != location.protocol + '//' + location.hostname;
}
function check2(url) {
var result =
typeof url != 'undefined' &&
url != '' &&
url != location.protocol + '//' + location.hostname;
return result;
}
alert(check('https://yandex.ru'));
alert(check2('https://yandex.ru'));
Автор решения: Василиса
→ Ссылка
Автоматическая расстановка ; не всегда срабатывает верно, в данном случае точка с запятой была автоматически поставлена в конце строки после return. Не забывайте скобки в таких случаях, если переносите строку - вот ссылка на документацию
return(
typeof url != 'undefined' &&
url != '' &&
url != location.protocol + '//' + location.hostname
);