2014-08-20 2 views
2

Курс просит меня сформировать цикл while, и я продолжаю получать ошибки или бесконечные циклы. Что я делаю не так?While Loops Syntax Errors

var understand = true; 

while(understand= true){ 
    console.log("I'm learning while loops!"); 
    understand = false; 
} 
+0

Мне любопытно, почему вы считали, что '=' будет вести себя по-разному в разных местах? Я рекомендую прочитать Руководство по JavaScript MDN для изучения основ: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide –

+0

Я использую Codeacademy для изучения Javascript, и он никогда не упоминал, что = и == используются по-разному. Я просто предположил, что они взаимозаменяемы. – Tim

+2

Вот почему хорошо учиться из нескольких источников. –

ответ

4

Вы используете оператор присваивания (=) и не равна тест (==).

Использование: while(understand == true)

Или упрощена: while(understand)

Обновление от комментариев:

=== означает, что значение и тип данных должны быть равны, а == попытается преобразовать их в то же самое тип перед сравнением.

Например:

"3" == 3 // True (implicitly) 
"3" === 3 // False because a string is not a number. 
+0

спасибо. Это зафиксировало это и помогло мне разобраться в различии между этими двумя. – Tim

+0

Кроме того, вы можете мне объяснить, что такое ===? Разве это не так? – Tim

+1

@Tim: http://stackoverflow.com/q/359494/218196 –

3

= означает назначение, в то время как == это сравнение. Итак:

while(understand == true) 

отметить также, что while и другие отраслевые структуры, принять условия. Поскольку это булева вы можете просто использовать себя:

while(understand) 

также примечание о разнице между == и === (строгого сравнения). Сравнение == попытается преобразовать обе стороны в один и тот же тип данных, прежде чем он сравнит значения. В то время как строгое сравнение === не делает это быстрее в большинстве случаев. Так, например:

1 == "1" // This is true 
1 === "1" // This is false