码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript使用小技巧

时间:2015-05-22 22:37:00      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:js



1 underfined、null、0、false、NaN、空字符串的逻辑结果均为false


2 从数组中随机获取成员
var items = [12, 548 , ‘a‘ , 2 , 5478 , ‘foo‘ , 8852, , ‘Doe‘ , 2145 , 119];
var  randomItem = items[Math.floor(Math.random() * items.length)];


3 获取指定范围内的随机数
var x = Math.floor(Math.random() * (max - min + 1)) + min;


4 获取数组中的最大值和最小值
var  numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
var maxInNumbers = Math.max.apply(Math, numbers);
var minInNumbers = Math.min.apply(Math, numbers);


5 清空数组
var myArray = [12 , 222 , 1000 ];
myArray.length = 0; // myArray will be equal to [].


6 不要直接从数组中delete或remove元素
切忌:
var items = [12, 548 ,‘a‘ , 2 , 5478 , ‘foo‘ , 8852, , ‘Doe‘ ,2154 , 119 ];
items.length; // return 11
delete items[3]; // return true
items.length; // return 11
/* items 结果为 [12, 548, "a", undefined × 1, 5478, "foo", 8852, undefined × 1, "Doe", 2154, 119] */


而应:
var items = [12, 548 ,‘a‘ , 2 , 5478 , ‘foo‘ , 8852, , ‘Doe‘ ,2154 , 119 ];
items.length; // return 11
items.splice(3,1) ;
items.length; // return 10
/* items 结果为 [12, 548, "a", 5478, "foo", 8852, undefined × 1, "Doe", 2154, 119]
删除对象的属性时可以使用delete。
*/


7 在条件中使用逻辑与或
逻辑或还可用来设置默认值,比如函数参数的默认值。


function doSomething(arg1){
    arg1 = arg1 || 10; // arg1 will have 10 as a default value if it’s not already set
}


8 通过for-in循环检查对象的属性
下面这样的用法,可以防止迭代的时候进入到对象的原型属性中。


for (var name in object) {
    if (object.hasOwnProperty(name)) {
        // do something with name
    }
}


9 用JSON来序列化与反序列化
var person = {name :‘Saad‘, age : 26, department : {ID : 15, name : "R&D"} };
var stringFromPerson = JSON.stringify(person);
/* stringFromPerson 结果为 "{"name":"Saad","age":26,"department":{"ID":15,"name":"R&D"}}"   */
var personFromString = JSON.parse(stringFromPerson);
/* personFromString 的值与 person 对象相同  */


10 不要对数组使用for-in
避免:
var sum = 0;
for (var i in arrayNumbers) {
    sum += arrayNumbers[i];
}


而是:
var sum = 0;
for (var i = 0, len = arrayNumbers.length; i < len; i++) {
    sum += arrayNumbers[i];
}


另外一个好处是,i和len两个变量是在for循环的第一个声明中,二者只会初始化一次,这要比下面这种写法快:
for (var i = 0; i < arrayNumbers.length; i++)


11 原始操作符比函数调用快


比如,一般不要这样:
var min = Math.min(a,b);
A.push(v);


可以这样来代替:
var min = a < b ? a : b;
A[A.length] = v;






参考:
http://www.w3cschool.cc/w3cnote/js-45-tips.html

JavaScript使用小技巧

标签:js

原文地址:http://blog.csdn.net/xufeng0991/article/details/45921437

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!