js-part is unnecessary — you can use just the same classes as you use for styling. BEM blocks encapsulate everything about themselves: styling, behavior (JS), images, tests, documentation, etc. so when there’s for example button block, it’ll have
button.mddescribing all the aspects of the button. all of them will mutch same
.buttonclass in HTML.
method proposed in this article increase selector weight, so btn.--red will cannot be overwrited with selector with one class