2015-12-22 2 views
0

Я программист по Java. Почему этот for-loop синтаксически неверен? (Проблема заключается в утверждении, если-)Почему этот javascript, если оператор/for-loop синтаксически неверен?

var wind = "thisisatest"; 
var k=false; 
for (i = 0; i < wind.length; i++) { 
if ((wind.charAt(i)='?') && (wind.charAt(i+1)='s') && (wind.charAt(i+2)='1')) {k=true;} 
} 
+3

['='] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators) используется для назначения и вызов метода не может быть назначен к. Для сравнения используйте ['==' или '==='] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators). –

+1

Примечание: вы можете использовать ['.indexOf()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf) - 'var k = wind .indexOf ("? s1")> -1; ' –

+0

Вы также можете использовать' wind.substr (i, 3) == '? s1'' – Barmar

ответ

0

wind.charAt(i)='?' вы хотите сказать ==? Вы не можете присвоить значение возвращаемому типу метода.

Кроме того, что происходит, когда i достигает wind.length-1 (последний символ)? Попробует ли он обратиться к персонажу рядом с этим? И после этого? Больше нет персонажей. Он должен идти i < wind.length - 2

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