If you learn the topics best by combining them, by all means keep doing that, but what I would stress that the technique which is the best way to learn is not always the best way to demonstrate understanding.
An employer looking for a junior or intern doesn't need mastery right now, they're simply looking for someone who can get started without too much hand holding and learn as they produce.
For example, if you say that you're studying computer science topics, and write a small blog post on sorting algorithms, I'll believe you.
If you say you're learning D3 and have a demo page with a few graphs or circles. I'll believe you.
If you say you're learning both, and combine it into a site which has lots of whizz-bang animations and vizualisations of data structures, I'll still believe you, but the bugginess of the site will lead me to be concerned that you'd power through the work without enough care.
The Js behind this (https://github.com/MKwenhua/petecvHeroku/blob/98643f3ac831b1...) reflects someone that is indeed scoping out different tech, but the code lacks some software engineering rigour (mixing jQuery use and native browser APIs suggests a copy/paste approach might have been in play to some degree, again, fine for learning, not for production code).
But that's ok. The rigour can be developed with time and mentoring when you have your foot in the door.
What I'm saying is that you can simplify a lot of your demos in order to get your foot in the door, don't feel the need to show that you can take on everything right away.
Instead of a site where everything flies into place with potential bugs in tow, simplify down to a more static site. You can still demonstrate your D3 skills with simple demos and your computer science findings with short blog posts.
If you'd like to chat more or have me elaborate, ping me on twitter or something as I don't like sharing email on HN.