substr allows extracting sub-string from the end like: "Good news, everyone!".substr(-4); will return one!. (Not supported by IE8- though). And since JavaScript doesn't natively support Function Overloading. So my theory is that this feature of extracting sub-string from the end was demanded heavily by the community and hence they introduced similar function with another name with a little change. I don't know what was the real reason but according to me the absence of native support for function overloading may caused the birth of this substr function.