2013-10-06 2 views
0

новинка на Javascript. С приведенным ниже кодом, глядя на второй абзац, в частности ... если var str = «тест на равенство ...» + strA, почему 2-я, 3-я строки и т. Д. Не выводят тот же вывод плюс их собственную строку?Конкатенация строк в Javascript

EDIT извините за неправильное объяснение. Я просто задаюсь вопросом, почему этот код (после того как я его очистил) НЕ ПРОЧИТАЕТ первую строку (второго абзаца), повторенную, плюс все, что я заявляю во 2-й и 3-й ряд и т. Д. Мне это не нужно, просто упражнение, я просто не понимаю. Кажется, что это должно быть

function init() 
{ 
var strA = "Javascript" === "JAVASCRIPT" ; 
var strB = "Javascript" === "Javascript" ; 
var flt = 7.5 === 7.5 ; 
var intA = 8 !== 8 ; 
var intB = 24 > 12 ; 
var intC = 24 < 12 ; 
var intD = 24 <= 24 ; 

var str = "String equality test: " + strA ; 
str += "<br>String equality test 2: " + strB ; 
str += "<br>Float equality test: " ; + strC ; 
str += "<br>Integer inequality test: " + intA ; 
str += "<br>Greater than test: " + intB ; 
str += "<br>Less than test: " + intC ; 
str += "<br>Less than/Equal to test: " + intD ; 

document.getElementById("panel").innerHTML = str ; 



} 
document.addEventListener("DOMContentLoaded" , init , false) ; 

Так что выход i get isas следует;

тест

Строки равенства: ложный тест равенства Строки 2: истинная Float проверка на равенство: истинно Integer тест неравенства: ложные Более тест: истинный Менее тест: ложные Меньше/равно тест: истинный

Это, очевидно, правильно, я просто не понимаю, как что-то вроде следующего ISNT выводимый, потому что, конечно, я добавляю каждую строку в вар ул, что «тест строка equakity: ложному

 String equality test: false 
String equality test: false String equality test 2: true 
String equality test: false Float equality test: true 
String equality test: false Integer inequality test: false 
String equality test: false Greater than test: true 
String equality test: false Less than test: false 
String equality test: false Less than/Equal to test: true 
+0

Почему у вас есть загадочное плавающее ';' в третьей строке? –

+0

^^ потому что нет strC? –

+0

@Jeffman: Это был ответ на меня, или OP? DJC: если бы вы просмотрели ваши инструменты для веб-разработчиков (F12 в большинстве браузеров), они сказали бы вам об этом. Кроме того, нажав кнопку «JS Hint», если вы собрали [JS Fiddle] (http://jsfiddle.net/). –

ответ

0

Я просто не понимаю, как что-то вроде следующего ISNT выводимый, потому что, конечно, я добавляю каждую строку вар str, который "String equakity test: false"

Нет, единственный раз, когда str является равный "String equality test: false" сразу после первой строки. Каждая строка изменяет переменную str, добавляя что-то к тому, что было после строки. Таким образом, после первой строки:

var str = "String equality test: " + strA ; 

... переменная str теперь равна

"String equality test: false" 

Затем после второй линии:

str += "<br>String equality test 2: " + strB ; 

... переменная str является в настоящее время составляет

"String equality test: false<br>String equality test 2:" 

Третья строка содержит ошибку, но если вы удалите лишнюю точку с запятой и исправить имя переменной:

str += "<br>Float equality test: " ; + strC ; 
// should be 
str += "<br>Float equality test: " + flt; 

... то переменная str будет равна

"String equality test: false<br>String equality test 2: true<br>Float equality test: true" 

... и так далее.

Это ясно видно, если вы добавили оператор console.log(str); между каждой строкой и откройте консоль своего браузера, прежде чем запускать код. Как показано здесь: http://jsfiddle.net/mfKy9/

+0

спасибо за это, очень ясный и полезный. я просто путался с + =, думая, что он держит линию, а затем добавляет следующую, тогда как, как вы говорите, она фактически заменяет предыдущее значение var str. благодаря! – DJC

1

На третьей линии перед + находится ;. Удаление, которое должно решить проблему. Переменная strC, которую вы пытаетесь добавить после этого странного +, не существует.

+0

спасибо, изменили это сейчас, но, пожалуйста, см. Мое редактирование, извините за неправильное объяснение в первый раз – DJC

+0

@DJC, вы имеете в виду, что ваш код по-прежнему не выводит все строки после решения проблем, о которых я упоминал? –

+0

Это упражнение из книги, и я пытаюсь понять, почему var str, когда используется во 2-й, 3-й строке и т. Д., Не включает бит «тест равенства строк», как это не то, что я определил его как , Другие строки выглядят так, как будто они должны это делать, а затем добавленные значения, которые они содержат? – DJC

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