频道栏目
首页 > 程序开发 > web前端 > JavaScript > 正文
JavaScript使用小技巧
2015-05-23 10:26:08         来源:寒风  
收藏   我要投稿


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;



点击复制链接 与好友分享!回本站首页
相关TAG标签 技巧
上一篇:javascript arguments对象研究--针对jquery源码研究再研究
下一篇:JAVA使用脚本引擎执行JS
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站