Слабая типизированность языка JavaScript подразумевает приведение обеих переменных к одному типу для того, чтобы произвести сравнение.
console.log(2 == true); // false. int boolean
console.log(!!2 == true); // true. boolean boolean
console.log(2 ? true : false); // true. boolean
var source = "#abcd123123123123123123123123";
var part1 = source.substr(1, 4);
var part2 = source.substr(5, source.length - 5);
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>