当前位置:  编程技术>WEB前端
本页文章导读:
    ▪Javascript高性能代码(一)      分享说明: 1. 我先申明,我只是茫茫WEB前端开发人员中的一名普通的js程序员,我收集的和总结的代码未必就一定是性能最好的,可能会是性能最差的,希望看到这篇博客的朋友能够对我的错.........
    ▪简易清除      在利用浮动进行布局时,不免会遇到一些问题。例如,当一个元素的所有子元素都浮动时,该元素的高度会变为零,这将破坏整体布局或导致该元素的背景不能正常显示。该问题的解决方法有.........
    ▪重置浏览器默认样式      浏览器内置了很多元素的默认样式,例如超链接的蓝色带下划线的文字样式。h1元素同样具有默认样式,例如外边距,粗字体,大字号等样式。糟糕的是,不同浏览器有不同的默认样式。 为更.........

[1]Javascript高性能代码(一)
    来源:    发布时间: 2013-11-06

分享说明:

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

本文链接


    
[2]简易清除
    来源:    发布时间: 2013-11-06

在利用浮动进行布局时,不免会遇到一些问题。例如,当一个元素的所有子元素都浮动时,该元素的高度会变为零,这将破坏整体布局或导致该元素的背景不能正常显示。

该问题的解决方法有很多,但这里会列出一个非常优雅的方法,即简易清除工具。这是一段样式规则,其细节如下所示。

.clear-fix:after {
content: ".";
display: block;
height: 0;
font-size: 0;
clear: both;
visibility: hidden;
}

.clear-fix {
+height: 1%;
}

本文链接


    
[3]重置浏览器默认样式
    来源:    发布时间: 2013-11-06

浏览器内置了很多元素的默认样式,例如超链接的蓝色带下划线的文字样式。h1元素同样具有默认样式,例如外边距,粗字体,大字号等样式。糟糕的是,不同浏览器有不同的默认样式。 为更好的控制元素样式,Eric Meyer提供了一个样式重置工具,来提高设计师的工作效率。这是一张名为reset.css的样式表,其中的样式规则如下。

/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

本文链接


    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3