this is my first question here in StackOverflow. I'm learning JS fundamentals. I've tried to re-examine from top to the bottom of the code that I've written and the 'unexpected token ')' ' keeps on reappearing. I rewrote the whole code from a video to make sure I wrote by myself and understand every line of the code as well as making myself familiar to write codes. I've tried to erase the last line code '})' but I wonder why does the error still occur. I hope anyone can help me, this is frustrating !
const secretNumber = Math.trunc(Math.random() * 20) + 1;
let score = 20;
document.querySelector('.number').textContent = secretNumber;
document.querySelector('.check').addEventListener('click',
function() {
const guess = Number(document.querySelector('.guess').value);
console.log(guess, typeof guess);
if (!guess) {
document.querySelector('.message').textContent = 'No Number!';
} else if (guess === secretNumber) {
document.querySelector('.message').textContent = 'Correct Number!';
} else if (guess > secretNumber) {
if (score > 1) {
document.querySelector('.message').textContent = 'Too High!';
score--;
document.querySelector('.score').textContent = score;
} else {
document.querySelector('.message').textContent = 'You lost the game!';
document.querySelector('.score').textContent = 0;
}
} else if (guess > secretNumber) {
if (score > 1) {
document.querySelector('.message').textContent =
'Too low!';
score--;
document.querySelector('.score').textContent =
score;
} else {
document.querySelector('.message').textContent =
'You lost the game!';
document.querySelector('.score').textContent = 0;
};
});
const secretNumber = Math.trunc(Math.random() * 20) + 1;
let score = 20;
document.querySelector('.number').textContent = secretNumber;
document.querySelector('.check').addEventListener('click',
function() {
const guess = Number(document.querySelector('.guess')
.value);
console.log(guess, typeof guess);
if (!guess) {
document.querySelector('.message').textContent =
'No Number!';
} else if (guess === secretNumber) {
document.querySelector('.message').textContent =
'Correct Number!';
} else if (guess > secretNumber) {
if (score > 1) {
document.querySelector('.message').textContent =
'Too High!';
score--;
document.querySelector('.score').textContent =
score;
} else {
document.querySelector('.message').textContent =
'You lost the game!';
document.querySelector('.score').textContent = 0;
}
} else if (guess > secretNumber) {
if (score > 1) {
document.querySelector('.message').textContent =
'Too low!';
score--;
document.querySelector('.score').textContent =
score;
} else {
document.querySelector('.message').textContent =
'You lost the game!';
document.querySelector('.score').textContent = 0;
};
}
});
You hadn't closed your last if statement else if (guess > secretNumber)
Consistent indenting and Sublime text both help solve this problem, see the image below...
You can see the closing function })
is one indent deeper than the opening which indicates a unclosed statement. We can also tell by Sublime Texts error highlighting.