## Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!

### Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.  # JavaScript adds undifined when printing to the page.

So I haven't looked at the solution yet, because I want to understand why this code does what it does. It works, and print to the page what I want except it adds undefind:

This is what I want it to print:

You got 2 question(s) right. You got these question(s) correct:

1. How many states are there in the USA?

2. How many oceans are there?

You got these question(s) wrong:

1. How many continents are there?

And this is what it prints:

You got 2 question(s) right. You got these question(s) correct: undefined

1. How many states are there in the USA?

2. How many oceans are there?

You got these question(s) wrong:

undefined

1. How many continents are there?

Here is my code:

```var qAndA = [
['How many states are there in the USA?', 51],
['How many continents are there?', 7 ],
['How many oceans are there?', 5]
];
//var q1 = parseInt(prompt(qAndA));
//var q2 = parseInt(prompt(qAndA));
//var q3 = parseInt(prompt(qAndA));
var i;
var q;
var correct;
var notCorrect;
var correctN = 0;
var notCorrectN = 0;
var messageA;
var messageB;

for ( i = 0; i < qAndA.length; i += 1){
q = parseInt(prompt(qAndA[i]));
if (q === qAndA[i]) {
correctN +=1;
correct += '<p>' + correctN + '. ' + qAndA[i] + '</p>';
} else {
notCorrectN +=1;
notCorrect += '<p>' + notCorrectN + '. ' + qAndA[i] + '</p>';

}
}

function print(messageA) {
messageA = document.write('<div><h2>You got ' + correctN + ' question\(s\) right.</h2>' +
'<b> You got these question\(s\) correct: </b>' +
correct + '</div>' );
if (notCorrectN > 0) {
messageB = document.write(
'<p><b> You got these question\(s\) wrong: </b></p>' +
'<p>' + notCorrect + '</p>');
messageA += messageB;
}
return messageA;
}

print(messageA);
``` When you define variable like:

```var i;
var q;
var correct;
var notCorrect;
```

its initial value is "undefined".

If you overwrite variable after declaration with a new value it's not a problem. But if you're going to concatenate, then you need to declare them initially as an empty string.