Насколько верно использовать присваивание как логическую операцию?
собственно вот
if(a=1)console.log('dd') срабатывает if(a=0)console.log('dd') не срабатывает насколько правильно использовать такую конструкцию? |
Это не есть best practice
Такой код приемлим ровно до тех пор пока его пишите Вы в одиночку. Потому что стороннему программисту может показатся, что здесь сравнение, либо вы опечатались. Чрез год, когда вы снова взгляните на свой код, вы будете в роли стороннего программиста, и такой код потребует дополинительного вашего времени. и эту потерю можно избежать. Хорошей практикой является такой стиль: a=0; if(a) { console.log('dd') } в таком случае всем становится ясно что тут происходит (с поправкой на отсутсвие строгой типизации). |
while( node= node.parentNode ) ancestors.push( node ) вполне нормальная практика |
для циклов такая практика нормальна ИМХО
не для if-ов |
Цитата:
if (!partsCount || !(interval -= intervals[i] * num)) { break; } если interval вне if вычислять, то иногда он впустую вычисляться будет. |
Цитата:
|
Цитата:
if (!partsCount) { break; } interval -= intervals[i] * num; if (!interval) { break; } ? А если вместо break много кода? Что-то башка под ночь не варит. |
вынести этот код в функцию х)
либо извращаться: breaking: { checks: { if( !partsCount ) break checks interval-= intervals[ i ] * num if( !interval ) break checks break breaking } // тут много кода // break loop } |
Цитата:
|
он вызывается в 2 местах. этого достаточно
|
Часовой пояс GMT +3, время: 20:19. |