基数変換

2進数→10進数

結論を先にいえば、2進数であることを示すには、数値の前に 0b を付けて、x=0b101, x=0b00000101 とすれば、x=5 になります。当然 x = "0b101" では 0b101 になるので、eval(x) とします。

00000101.toString(10)とすると、(理由がわからないのですが)65になってしまいます。
"00000101".toString(10)とすると、変換されず00000101になってしまいます。

10進数→8ビット2進数

10進数を2進数に変換する関数に toString がありますが、x = 5 とすると、y = x.toString(2)→101 になります。それに関して、左に0を詰めた8ビットの2進数にしたいことがあります。
  y = ("00000000" + x.toString(2)).slice(-8)
により 00000101 にすることができます。
  "00000000" + x.toString(2)→"00000000101"
  slice(-8) 末尾の8文字を取り出す→"00000101"
しかし、この2進数はあくまでも文字列なので、数値として使うには、eval(y) とする必要があります。