Насколько верно использовать присваивание как логическую операцию?
собственно вот
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, время: 12:48. |