hello,JavaScript | 关注学习前端技术,前端开发,前端,JavaScript,css,html,js,前台,ued,视觉设计(这就是seo?)

CAT | 每日Tips

四/10

1

TIPS 第四波

各个浏览器里的window对象toString后的结果不同,如下:
[object Object]IE6 
[object Object]IE8 
[object Window]firefox3.6 
[object Window]opera10 
[object DOMWindow]safai4.04 
[object global]chrome5.0.3.22
当把setInterval的第二个参数设置为0的时候,函数将按队列依次执行,时间间隔依函数的执行时间而定
在ie中如果设定了li元素的height,则项目列表中的序号不正常,而且list-style-position:inside;失效
ie6里的内存回收貌似很频繁啊 我建了一个100行的表格 将它重新渲染1000次 ie的内存始终在24兆左右增加和减少.而chrome一下子涨到60兆 好久好久之后才回收到20兆
在遍历Dom结构时,应该尽量避免修改Dom,比如在遍历的时候不断的增加元素,可能会造成无限循环,每次修改都是实时更新的,如果有需要可以先建立一个静态列表进行遍历。
在设置元素样式时,应该尽量一次设定,避免多次设定,较少reflow,可以通过改变元素的class来达到目的。
字符串合并是比较慢的。+?运算符并不管是否将结果保存在变量中。它会创建新 string 对象,并将结果赋给此对象;也许新对象会被赋给某个变量。下面是一个常见的字符串合并语句:a += ‘x’ + ‘y’;
此代码首先创建临时string对象保存合并后的’xy’值,然后和a变量合并,最后将结果赋给a。下面的代码使用两条分开的命令,但每次都直接赋值给a?,因此不需要创建临时string对象。结果在大部分浏览器中,后者比前者快20%,而且消耗更少的内存:
a += ‘x’;
a += ‘y’;
如果页面里只有div和script标签没有body,head什么的,而且div里面只有空格没有字符的话,这时候用document.getElementById(“****”)获取不到div的引用
函数声明的实例化晚于变量声明的实例化,并且允许覆盖。所以:
function x(){ }
var x;
typeof x; // “function”
发现对button设定背景图,如果不将背景色置为transparent,那么,在windows xp默认主题下面,背景图显示是有问题的——而我将系统主题调为win 2000式的那种经典界面,一直没有注意到这个bug

经典的垂直问题中,img的父容器如果float了,那么其display table-cell 将失效,table-cell只能在display static的时候有效,因此解决方案是给img再加个包装容器,原来的父容器float,包装器table-cell
尽量向 setTimeout() 和 setInterval()传送函数名,而不要传送字串。setTimeout() 和 setInterval() 方法近似于 eval。如果传进参数是字符串,则在一段时间之后,会和 eval一样执行字符串值,当然其低效率也和 eval 一样。但这些方法也可以接受函数作为第一个参数。在一段时间后将调用此函数,但此函数可在编译时被解释和优化,也就是说会有更好的性能。

三/10

17

TIPS第三波(10-15)

20

每日Tip(11):不要随意给原生对象加prototype,会造成对象污染,例如:for in的时候会多出自定义的方法属性等
每日Tip(12):对于数组,尽量避免用for in来遍历,因为for in会寻找原型链,在chrome里效率是for遍历的10分之一
每日Tip(13):在绑定表单的提交事件时,如果button的type类型为submit时,要通过绑定form的submit事件,避免使用button的click事件,因为如果表单可以通过回车提交的话,绑定在button上的click事件是不会触发的。
每日Tip(14):url里面各个部分的名称:
e69f7513b75e05bc098df258c85bf1bf
每日Tip(15):js里可以表示的最大的数是:
MAX_VALUE 属性是 JavaScript 中可表示的最大的数。它的近似值为 1.7976931348623157 x 10(308)

(全文…)

·

三/10

15

TIPS第一波(1-5)

20

每日Tip(1):需要为html元素添加自定义属性的时候,首先要考虑下有没有默认的已有的合适标签去设置,如果没有,可以使用以”data-”为前缀来添加自定义属性,避免使用”data:”
每日Tip(2):前端的assets文件要求编码必须为GBK、GB2312或者GB18030,我们的demo尽量也都为gbk编码~(指淘宝网页的编码,据说是历史遗留问题)
每日Tip(3):html代码要求所有的标签、属性都是用小写字母,属性值使用双引号括起来,使用js插入html代码的时候也要注意保持一致
每日Tip(4):JS代码中,应该尽量在函数开始地方统一进行变量声明,变量名注意语义化,一般使用名词来命名,不要在意名字的长度,压缩后会替换为简短的变量名的。
每日Tip(5):JS中,浮点数的计算过程是:先将浮点数转化为二进制,然后进行计算,再转化为十进制,这样子会有少许的误差,所以为了避免这种误差我们可先将浮点数乘以10的n次方,转化为整数计算,然后再转化为小数

(全文…)

· ·

三/10

15

TIPS第二波(5-10)

20

每日Tip(6):Firefox中将同一域名下不同端口的访问也视为跨域操作
每日Tip(7):强制WEB?App在iPhone中全屏模式运行 (王卓)
每日Tip(8)
caf9ca2489c37ba0b26165803d119677
每日Tip(9):for-in循环通常比其他循环慢,因为它需要从一个特殊的对象中解析每个可枚举的属性 也就是说为了提取这些属性需要检查对象的原型和整个原型链。遍历原型链就像遍历作用域链,它会增加整个循环的用时,降低整个循环的性能。
每日Tip(10):Date()作为普通函数被调用时,Date()将忽略传递给它的所有参数,返回当前日期和事件的字符串标识

(全文…)

· ·

Theme Design by devolux.nh2.me