JavaScript is Strange – 2

So here is the part 2 of the strangeness of JavaScript. If you have missed out the part of one of strangeness of JavaScript click here

Many might have come from the .Net or Java or Ruby background. To those the below snippet might work strange to them

var a = 10;
var b = 012;
var c = a + b;//20 

The reason why it is 20 because if you suffix number zero(0) then it would be considered as Octa (so here in this example 12 in Octa is equal to 10 so answer is 20)

So the lesson here is if you suffix zero before any decimal in JavaScript then it would be considered as Octa

typeof NaN;//number


typeof null;//object

null instanceof object;//false

(function(){ alert('hi'); })();//alerts 'hi'
//Strange part here is a function can execute themselves

var numA = 9999999999999999;

true === 1//false (this is you are already aware)
true + true === 2 //true (so true + true is 2)
true - true === 0 //true (so true - true is 0)

var arrayMap = [1];
arrayMap['first'] = 'first value';
arrayMap['second'] = 'second value';
arrayMap['first'];//first value
arrayMap['second'];//second value

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.