Javascript: Best practices
var person = {
getName: function () {
return this._getFirst() + ' ' + this._getLast();
},
_getFirst: function () {
// ...
},
_getLast: function () {
// ...
}
};
var i, myarray = [];
for (i = myarray.length; i -= 1) {
// do something with myarray[i]
}
var myarray = [],
i = myarray.length;
while (i--) {
// do something with myarray[i]
}
for (var i in object) {
if (object.hasOwnProperty(i)) {
console.log(i, ": ", object(i));
}
}
for (var i in man) {
if (Object.prototype.hasOwnProperty.call(man, i)) { //filter
console.log(i, ":", man[i]);
}
}
var i,
hasOwn = Object.prototype.hasOwnProperty;
for(i in man) {
if (hasOwn.call(man, i)) {
console.log(i, ":", man[i]);
}
}
var i,
hasOwn = Object.prototype.hasOwnProperty;
for (i in man) if (hasOwn.call(man, i) {
console.log(i, ":", man[i]);
}
###(Not) Augmenting Built-in Prototypes
Augment built-in prototypes only when all these conditions are met:
if (typeof Object.prototype.myMethod !== "function") {
Object.prototype.myMethod = function () {
// implementation...
};
}
var inspect_me = 0,
result = '';
switch (inspect_me) {
case 0:
result = "zero";
break;
case 1:
result = "one";
break;
default:
result = "unknown";
}
var month = "06",
year = "09";
month = parseInt(month, 10);
year = parseInt(year, 10);
+"08" // result is 8
Number("08") // 8
parseInt("08 hello") // 8
+"08" // NaN
Number("08") // NaN