Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > понять бы что в переменной


Автор: YahоО 13.5.2019, 19:30
На одном сайте встретилось:
Код

function a(t){
 var n=++e%100;
 //...
}

Если бы по отдельности 
 var n=++e 
или 
 var n=e%100
то понятна была бы запись, но так тоже можно записывать? 
А бывают ли еще более непонятные и более длинные записи казалось бы простых действий?

Автор: whatisnot 14.5.2019, 03:15
Цитата(YahоО @  13.5.2019,  19:30 Найти цитируемый пост)
var n=++e 
или 
 var n=e%100


А https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Operator_Precedence никак?

Единственное, что не понятно, это откуда взялось е при аргументе t.

Автор: YahоО 14.5.2019, 18:41
Как бы и так,
но:
там, да впрочем и в остальных мануалах, как то и не встретилось ранее такое ++e%100, 
дай думаю спрошу - где увидеть в ассортименте подобные сложносочиненные ...
(ну чтобы поэкспериментировать на тему приоритетов операторов)
а то все по старинке, сначала var n=++e, и лишь потом n=n%100, и никак короче, а ведь можно, оказывается, и Вы тему знаете и используете, и я хочу smile


Цитата(whatisnot @  14.5.2019,  03:15 Найти цитируемый пост)
Единственное, что не понятно, это откуда взялось е при аргументе t.

на этом я тоже попался, и написал свой вопрос, и лишь через пару секунд понял что и как работает в такой функции, но вопрос уже появился и как же его удалить с форума,
и пришлось редактировать вопрос, дабы и до конца довести и польза образовалась.
t используется в функции где то там, где //...,
e такой собственной переменной в функции нет, используется внешняя, тогда все очень даже понятно.

Кстати не я один застопорился на такой записи, еще и FTP !
(при передаче  на сервер этой функции, как раз на этом самом месте файл начал распознаваться как двоичный, найти точку преткновения стоило времени, а заменить ++ % на "нормальные" - секунда дела, и все пошло как по маслу) 
Так что использовать такие сложности себе во вред, наверное.


Автор: whatisnot 14.5.2019, 20:50
Зная о приоритетах операторов (с учетом ассоциаций) что может быть сложного для понимания в записи ++e % 100? Сначала будет выполнен префиксный инкремент над переменной e, так как этот оператор имеет высший по сравнению с делением по модулю приоритет. Надеюсь, что не надо пояснять, что результат инкремента сразу же будет присвоен переменной. А после инкремента производится деление по модулю, так как этот оператор имеет низший по сравнению с инкрементом приоритет. Результат этих двух операций будет присвоен переменной n. Сложно?    

Автор: YahоО 15.5.2019, 08:57
Неа, не сложно, но когда первый раз видишь...
то требуется время на рассмотрение, вот бы и посмотреть на другие возможные варианты, что бы при встрече удивления уже не было.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)