Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите новичку в коде (https://javascript.ru/forum/misc/66772-pomogite-novichku-v-kode.html)

andyyy 09.01.2017 21:33

помогите новичку в коде
 
Всем привет! только начал изучать js, читаю книгу, там такой код

<HTML>
<IMG ID = "myimg" SRC = '1.jpg' onclick = "imgchange()">
<SCRIPT>
var flag=false; // флаг (триггер)
function imgchange() { // обработчик щелчка на изображении
if (flag) {document.all.myimg.src = "1.jpg";}
else {  document.all.myimg.src = "2.jpg"; }
flag=!flag; // изменяем значение флага на противоположное
}
</SCRIPT>
</HTML>


все понятно, после клика по изображение, включается функция imgchange(), сначала переменная flag имеет false значение,
значит выполняется условие else, вот дальше не понятно: flag=!flag; // изменяем значение флага на противоположное - т.е значение флага из false меняется на true и потом при след. клике наступает условие if. Я не могу понять, почему когда я делаю так flag=true; то есть приравниваю к true, что должно ровняться этому условию: flag=!flag;,скрипт срабатывает один раз всего(картинка меняется один раз), а так: flag=!flag -бесконечно???

TestUser013 09.01.2017 22:31

https://learn.javascript.ru/logical-ops#%D0%BD%D0%B5

flag=!flag - тут используется оператор ! (НЕ)

andyyy 09.01.2017 23:51

Цитата:

Сообщение от TestUser013 (Сообщение 440165)
https://learn.javascript.ru/logical-ops#%D0%BD%D0%B5

flag=!flag - тут используется оператор ! (НЕ)

ну да, я понял, ну надпись означает же true, .т.е.

1. сначал у переменной false
2. потом: flag(false)не равенflag(false), т.е true получается! но когда подставляешь flag=true, один раз срабатывает

TestUser013 10.01.2017 00:04

Там не проверка равности, там операция присваивания.

andyyy 11.01.2017 18:32

Цитата:

Сообщение от TestUser013 (Сообщение 440171)
Там не проверка равности, там операция присваивания.

у меня тоже операция присваивания, flag=true же, равность же так, flag==true, целый форум, и никто не может ответить нормально
Чем отличается flag=!flag от этого flag=true в скрипте????

рони 11.01.2017 18:37

Цитата:

Сообщение от andyyy
от этого flag=true

тем что flag становится то true то false , а у вас всегда одно и тоже true

ruslan_mart 11.01.2017 19:45

Какой ужас, что же за древние книги Вы читаете.

ksa 12.01.2017 08:21

Цитата:

Сообщение от Ruslan_xDD
что же за древние книги Вы читаете

Видать досталась от отца... :D

andyyy 13.01.2017 13:15

Цитата:

Сообщение от рони (Сообщение 440379)
тем что flag становится то true то false , а у вас всегда одно и тоже true

Да я уже понял за три дня, все равно спасибо
Цитата:

Сообщение от Ruslan_xDD (Сообщение 440387)
Какой ужас, что же за древние книги Вы читаете.

Что было, в инете нашел а что посоветуйте из книг для новичков, ?

ksa 13.01.2017 13:27

Цитата:

Сообщение от andyyy
что посоветуйте из книг для новичков, ?

Как вариант...
Там фулхаус для начинающего! ;)


Часовой пояс GMT +3, время: 23:42.