java 高性能代码_[Java教程]Javascript高性能代码(一)

[Java教程]Javascript高性能代码(一)

0

2013-03-09 22:00:11

分享说明:

1. 我先申明,我只是茫茫WEB前端开发人员中的一名普通的js程序员,我收集的和总结的代码未必就一定是性能最好的,可能会是性能最差的,希望看到这篇博客的朋友能够对我的错误进行批评指正。

2. 随着代码效率的提升,难免可读性降低,因此使用还是应该多多权衡。

谢谢!

一、条件判断类(以下的a都默认是boolean类型): 1. 常规代码

if(a) { b = 'a是true';} else { b = 'a是false';}

2. 三元运算符b = a ? 'a是true':'a是false';

3. 个人觉得性能最优代码b = a && 'a是true' || 'a是false';

二、 数组的连接(a和b均为数组)1. 使用concat方法

a.concat(b)

2. 使用循环push(性能应该最差,不写具体代码了,估计没有人这么干)

3. 使用栈方法push(此方法性能最高,若有兴趣可以测试看看)Array.prototype.push.apply(a, b);

三、 对于确定类型并且确定值的判断(a和b均是js变量),比如:keydown事件中的keyCode的比较1. 使用等号==(该表达式会默认对类型进行转换)

a == b

2. 使用全等运算符===(该表达式不会进行类型转换,直接看类型,若不同类型返回false,否则比较值是否相等)

a === b

四、 字符串连接(当一次会进行很多次循环操作的时候)1. 使用+连接,由于每次都会在连接的时候创建另一个字符串对象,因此性能较低(目前某些浏览器进行了优化,但是对于IE浏览器,性能依旧很低);

var a = '', b = 10000;while( b-- > 0) {a += '我是第' + (10000 – b) + '次操作\r\n';}

2. 在循环中将字符串添加到一个数组中,循环结束后使用数组的join方法,这样就不会在每次字符串连接的过程中创建另一个临时对象,因此性能显著提升。var a = [], b = 10000;while( b-- > 0) {a.push('我是第', 10000-b, '次操作\r\n');}

五、 取整运算,已知a为数字类型1. 常规方法Math.floor(a)

2. 两次取反(该方法必须先确定a为数字类型,否则运行时会报错,不会返回NaN)~~a

本文网址:http://www.shaoqun.com/a/55502.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JavaScript

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
spring的良好的扩展性,集成度,IOC,AOP事务,已经是项目的基础条件. 整个项目只使用了spring 没有struts,没有hibernate //就极简而言,一个数据库只需要一个Service,就可以查询这个数据库的任意一张表 //以下是我的测试用例 //@Test 查询基本类型 public void testObject() throws Exception{ Finder finder=new Finder("select id from [Users] where 1=1 "); finder.append("and userId=:userId").setParam("userId", 6); Integer id = baseFangService.queryForObject(finder, Integer.class); System.out.println(id); } //@Test 查询日期 public void testObjectDate() throws Exception{ Finder finder=new Finder("select cteateTime from Users where id=6 order by id"); Date id = baseFangService.queryForObject(finder, Date.class); System.out.println(id); } //@Test 查询一个对象 public void testObjectUser() throws Exception{ Finder finder=new Finder("select * from Users where id=6 order by id"); Users u = baseFangService.queryForObject(finder, Users.class); System.out.println(u.getName()); } //@Test 查询分页 public void testMsSql() throws Exception{ Finder finder=new Finder("select * from Users order by id"); List<Users> list = baseFangService.queryForList(finder, Users.class, new Page(2)); System.out.println(list.size()); for(Users s:list){ System.out.println(s.getName()); } } //@Test 调用数据库存储过程 public void testProc() throws Exception{ Finder finder=new Finder(); finder.setParam("unitId", 0); finder.setProcName("proc_up"); Map queryObjectByProc = (Map) baseFangService.queryObjectByProc(finder); System.out.println(queryObjectByProc.get("#update-count-10")); } //@Test 调用数据库函数 public void testFunction() throws Exception{ Finder finder=new Finder(); finder.setFunName("fun_userId"); finder.setParam("userId", 6); String userName= baseFangService.queryForObjectByByFunction(finder,String.class); System.out.println(userName); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值