2015-01-07 4 views
0

Я продолжаю получать undefined перед моим выходным текстом в JS. Вот мой код.Почему я получаю undefined вывод Javascript?

<!DOCTYPE html> 
<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>Learning javascript</title> 
</head> 
<body> 

    <p id="arrayString"></p> 



    <!-- Javascript --> 
    <script type="text/javascript" src="JS/app2.js"></script> 
</body> 
</html> 

Это мой JS

var arrayString; 
var myArray=["Ms.Vickies", "Old Dutch", "Lays"]; 
for (var i=0; i<myArray.length; i++) { 
    arrayString=arrayString+myArray[i]; 
} 
document.getElementById("arrayString").innerHTML=arrayString; 

мой выход undefinedMs.VickiesOld DutchLays

Кроме того, почему без пробелов? Я новичок в JS, но я работаю. Не могу понять это.

+0

Чтобы люди могли легко помочь вам, рассмотрите возможность создания jsfiddle вашей проблемы. jsfiddle - это сайт, на котором вы можете запускать javascript с html live в браузере. – Relequestual

ответ

6

Это потому, что в вашей первой итерации цикла arrayString не определено. Установите вместо него пустую строку.

Вместо того, чтобы объявить arrayString так:

var arrayString; 

Инициализировать его с пустой строкой:

var arrayString = ''; 
1

Поскольку вы инициирующим/неопределенную переменную пустой, делая это: var arrayString;

Вы можете исправить это, выполнив следующие действия: var arrayString = "";

еще лучше, вместо того, чтобы использовать for петлю, вы можете сделать это следующим образом:

var myArray=["Ms.Vickies", "Old Dutch", "Lays"]; 
document.getElementById("arrayString").innerHTML = myArray.join(" "); 

Подробнее: http://www.w3schools.com/jsref/jsref_join.asp

0

В коде, вы только что объявили, не initialized.so, просто замените

var arrayString; 

с

var arrayString = ''; 

Надеюсь, это поможет ... Спасибо.

Смежные вопросы