9.1 - 9.3
126.【Mobile】iPhone/Android 如何去掉超链接点击高亮的边框?
dom.ontouchstart = function(){
return false;
}
即可去除(王卓)
127.【JS】计时器在OS上,浏览器的最小延时时间为10ms,在windows上为15ms。我们可以通过为计时器提供0(或任何10ms以下的任何数值)作为延时时间得到这个值。(圆心)
128.【JS】setTimeout可以改变调用栈的顺序:
alert(1);
setTimeout(function (){
alert(2)
},0);
alert(3);
alert(4);
//执行顺序 1 -> 3 -> 4 -> 2
相关延伸阅读: http://ejohn.org/blog/how-javascript-timers-work/ (龙刚)
9.6 - 9.10
129.【JS】在创建img时,src不要设置为空或者#,否则会对页面再次发生请求,建议设置为about:blank;。
130.【JS】typeof 某一个 string 可能出来 object 或是 string,视其创建方式。(法海)
131.【JS】几种国产浏览器的 UA 信息:https://spreadsheets.google.com/ccc?key=0AjjyN0rjIwrydGx1b2QyVkdlNjBfY2VEckFhTXJmTXc&hl=zh_CN#gid=0 (子涯)
132.【JS】逻辑运算符&&和||的“短路”原理,如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。在js中有意思的是它们的返回值:
例:var attr = true && 4 && “aaa”;那么运行的结果attr就不是简单的true或这false,而是”aaa” 。
例:var Yahoo = Yahoo || {};经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值。
那么,可以这样优化代码:
if(a >=5){alert("你好");}
可以写成:
a >= 5 && alert("你好");
注:js中||和&&的特性帮我们精简了代码的同时,也带来了代码可读性的降低。需要我们自己来权衡了!(涵宇)
133.【JS】字面量 string 不以对象实现,作为 16 位无符号整数存储,当局称这么做的目的是为了“简单高效”。(法海)
9.13 - 9.17
134.【JS】var x = "this is string..."; var y = ["this","is","string"]; x与y不同之处在于类型,javascript的解析器把字符串直接赋值(其实就是copy)给x(直接量),却把数组的指针赋给y(引用量)。(涵宇)
135.【JS】对一个字符串使用replace方法的时候,用正则模式可以替换掉字符串里面的全部子字符串,用字符串模式则只做一次匹配,只替换第一个匹配,
var aa = "{}{}{}";
Var cc = aa.replace("{","LEFTQUOTE");//只做一次匹配
console.log(cc);
var bb = "{}{}{}";
Cc = bb.replace(/{/g,"LEFTQUOTE");//可做全部的替换
console.log(cc);
(乔福)
136.
137.【JS】“+”运算符的所谓“重载”,其实只是同一个算法内部的不同分支。(法海)
138.【CSS】p是block_level元素,没有其他的块级元素可以牵入到p里,因为在P元素中遇到块级元素后会立即闭合P元素;如:<p><div></div></p>会被解析成<p></p><div></div><p></p>。(涵宇)
9.19 - 9.21
139.【JS】“+”运算符进入“串连接”操作的分支后,调用左运算元(转换成 String 对象后)的 Concatenate 方法,这意味着返回的是对象(运算元均为数字时,将调用另外的方法,不返回对象)。(法海)
140.【JS】JavaScript不支持重载,在JavaScript中,脚本在执行时不会顾及函数定义时的参数,而是直接使用在作用域链中最后定义的那个函数。这意味着,相同 名称的函数永远只存在一个实例。(涵宇)
141.【CSS】在 IE67 中,hr 默认有上下 14px 的 margin,同时不能消除。使用 float 清除上边距,负边距清除下边距。(法海)
9.25 - 9.30
142.【HTML】创建复杂的HTML标签或是多层的嵌套标签时,可以选择使用DocumentFragment机制,它可以提供一个缓冲的机制,将DOM节点先放到内存中,当节点都构 造完成后,再将DocumentFragment对象添加到页面中,这时所有的节点都会一次渲染出来,能减少浏览器很多的负担,明显的提高页面渲染速度。(涵宇)
143.【HTML】关于 HTML5 表单验证的文章:http://www.alistapart.com/articles/forward-thinking-form-validation/
144.【JS】将函数的引用作为参数传递到setTimeout()和setInterval()里优于将函数名作为字符串参数传递(硬编码)。例如,setTimeout(”someFunc()”, 1000)执行效率慢于setTimeout(someFunc, 1000)。(涵宇)
145.【JS】对于简单的任务,最好使用基本操作方式来实现,而不是使用函数调用实现。例如val1 < val2 ? val1 : val2;执行速度快于Math.min(val1, val2);,类似的,myArr.push(newEle);慢于myArr[myArr.length] = newEle;(涵宇)
146.【JS】ie下非表单链接元素在触发click事件的时候,focus事件也会被触发,非ie不会触发。(龙藏)
147.【浏览器】当发出的请求未收到response时,刷新页面,firefox和chrome会自动中断请求,而IE不会,所以在模拟长连接时多次刷新页面就会因为积累太多请求而遇到IE并发请求数的瓶颈,需要在触发beforeunload事件时手动abort请求来解决。(鸣人)