Using the const keyword for variables that will be modified: JavaScript's const keyword is used to declare a constant variable, which means its value can't be reassigned. But you're trying to reassign values to userPassword and count, which will throw errors. You should use the let keyword for these variables.
Incorrect string formatting: JavaScript doesn't have a .format() method for strings like Python does. Instead, you can use template literals to interpolate values into strings.
Scope of the count variable: Your count variable is declared inside the else block, which means its scope is limited to that block. If you try to access it outside of that block (like in the if (count > 2) check), it will throw an error. Declare count outside of the do-while loop to make it accessible throughout the function.
Here's a corrected version of your code:
const password = "1234";
function checkPassword() {
let userPassword = prompt("Enter password: ");
if (userPassword === password) {
alert("Correct, you can now add changes to the materials, tools and equipments.");
} else {
alert("Wrong password.");
let count = 1;
do {
userPassword = prompt("Enter password again: ");
if (userPassword === password) {
alert("Correct, you can now add changes to the materials, tools and equipments.");
break;
} else {
alert(
Wrong password. This error has occurred ${count} time(s).
);
count++;
}
} while (count <= 2);
if (count > 2) {
alert("A warning has been sent to the boss. You will not be able to use the bot for the next 5 minutes.");
setTimeout(() => {
alert("You can now use the bot again.");
}, 300000);
}
}
}
checkPassword();