Грешка недостатка заставе у функцији у ЈаваСкрипту
Претпоставимо да желимо да направимо функцију, која ће параметрима примати цифру и број, и проверавати да ли задата цифра постоји у броју:
function func(needle, num) {
// овде ће бити код
}
Ево како ћемо користити нашу функцију:
console.log(func('3', '12345')); // исписаће true
Неки програмер је написао решење овог задатка:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Ово решење, међутим, ради неисправно.
Ствар је у томе што је у циклусу написао услов,
у коме ће се већ у првој итерацији
извршити или један return,
или други, тиме извршивши
излазак и из циклуса, и из функције.
Преписаћемо наш код на исправан начин, користећи имплицитне заставе у функцијама:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}