JavaScript程序员应该知道的45个实用技巧

如你所知,JavaScript是世界上第一的编程语言,它是Web的语言,是移动混合应用(mobile hybrid apps)的语言(比如PhoneGap或者Appcelerator),是服务器端的语言(比如NodeJS或者Wakanda),并且拥有很多其他的实现。同时它也是很多新手的启蒙语言,因为它不但可以在浏览器上显示一个简单的alert信息,而且还可以用来控制一个机器人(使用nodebot,或者nodruino)。掌握JavaScript并且能够写出组织规范并性能高效的代码的开发人员,已经成为人才市场上的猎寻对象。
需要注意的是,这篇文章中的代码片段都在最新的Google Chrome(版本号30)上测试过,它使用V8 JavaScript引擎(V8 3.20.17.15)。

1 – 在第一次给一个变量赋值的时候不要忘记使用var关键字
给一个未定义的变量赋值会导致创建一个全局变量。要避免全局变量。
2 – 使用===,而不是==
==(或!=)操作符在需要的时候会自动执行类型转换。===(或!==)操作不会执行任何转换。它将比较值和类型,而且在速度上也被认为优于==。

复制代码 代码如下:


[10] === 10    // is false
[10]  == 10    // is true
'10' == 10     // is true
'10' === 10    // is false
 []   == 0     // is true
 [] ===  0     // is false
 '' == false   // is true but true == "a" is false
 '' ===   false // is false


3 – 使用闭包实现私有变量

复制代码 代码如下:


function Person(name, age) {
    this.getName = function() { return name; };
    this.setName = function(newName) { name = newName; };
    this.getAge = function() { return age; };
    this.setAge = function(newAge) { age = newAge; };

    //未在构造函数中初始化的属性
    var occupation;
    this.getOccupation = function() { return occupation; };
    this.setOccupation = function(newOcc) { occupation =
                         newOcc; };
}


4 – 在语句结尾处使用分号
在语句结尾处使用分号是一个很好的实践。如果你忘记写了你也不会被警告,因为多数情况下JavaScript解释器会帮你加上分号。
5 – 创建对象的构造函数

复制代码 代码如下:

function Person(firstName, lastName){
    this.firstName =  firstName;
    this.lastName = lastName;
}

var Saad = new Person("Saad", "Mousliki");


6 – 小心使用typeof、instanceof和constructor

复制代码 代码如下:

var arr = ["a", "b", "c"];
typeof arr;   // return "object"
arr  instanceof Array // true
arr.constructor();  //[]


7 – 创建一个自调用函数(Self-calling Funtion)
这个经常被称为自调用匿名函数(Self-Invoked Anonymous Function)或者即时调用函数表达式(IIFE-Immediately Invoked Function Expression)。这是一个在创建后立即自动执行的函数,通常如下:

复制代码 代码如下:


(function(){
    // some private code that will be executed automatically
})();
(function(a,b){
    var result = a+b;
    return result;
})(10,20)


8- 从数组中获取一个随机项

复制代码 代码如下:

var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119];

var  randomItem = items[Math.floor(Math.random() * items.length)];[code]
9 – 在特定范围内获取一个随机数
这个代码片段在你想要生成测试数据的时候非常有用,比如一个在最小最大值之间的一个随机薪水值。
[code]var x = Math.floor(Math.random() * (max - min + 1)) + min;


10 – 在0和设定的最大值之间生成一个数字数组

复制代码 代码如下:

var numbersArray = [] , max = 100;

for( var i=1; numbersArray.push(i++) < max;);  // numbers = [0,1,2,3 ... 100]


11 – 生成一个随机的数字字母字符串

复制代码 代码如下:

function generateRandomAlphaNum(len) {
    var rdmstring = "";
    for( ; rdmString.length &lt; len; rdmString  += Math.random().toString(36).substr(2));
    return  rdmString.substr(0, len);
}


12 – 打乱一个数字数组

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjxzyy.html