如何判断浏览器当前是以什么模式在渲染页面

知道浏览器的QuirkMode, 在IE下也知道如何查看IE是否处在QuirkMode. 但是在Chrome下我还真不清楚在哪里能看到浏览器现在是否是在以QuirkMode在渲染页面. 找了一圈子,也只找到了这个用JavaScript判断的方法. 难道Chrome没有在界面上提供工具指示这个状态吗? window.alert('You are in ' + (document.compatMode==='CSS1Compat'?'Standards':'Quirks') + ' mode.') 参考: http://stackoverflow.com/questions/627097/how-to-tell-if-a-browser-is-in-quirks-mode

Continue Reading

coffeescript 的 splats …

splats比较特别, 我在php里没有遇到过类似的语法. 主要有两方面 定义函数时, 在最后一个参数上使用splats, 表示把函数调用时这个参数及后续参数作为一个数组赋给该参数 在使用一个数组作为参数传给调用的函数时, 在数组后面加上splats, 则会把数组拆开传给调用的函数 例如这段coffeescript代码: splatter = (one, two, three...) -> console.log "1: #{one}" console.log "2: #{two}" console.log "3: #{three.join(',')}" splatter 1, 2, 3, 4,…

Continue Reading

Javascript的字符串里神奇的逗号与数组

先看这行代码: [source lang="javascript"] new Array([],null,undefined,null) == ",,,"; // true [/source] 挺神奇,哈? 这里有两件事情,首先当然是“==”这家伙引起了类型转换。 转换的规则是当两个对象a和b作比较时,如果一方是简单类型(假设是b吧),另一方是对象(假设是a);则把a类型转换成b的类型。前面的代码b(",,,")是字符串,简单类型,所以要求a(typeof Array是对象对吧)作类型转换到字符串。 另一件事情就是Array的类型转换,转换成字符串时,数组大概就是这样做的:首先把每一个元素转换成字符串,然后调用数组的join方法。既是本上a对象经历了这样的转变: 1. Array([],null,undefined,null) 2. Array("","","","") 3. Array("","","","").join() 4. ",,," 最后变成了",,,",自然就返回true了。 同样的道理下面这行代码就不难理解了。 [source lang="javascript"] ",,," == new…

Continue Reading

Javascript的最大值(max)比最小值(min)小

Javascript有很多很好的特性,Douglas Crockford的JavaScript: The Good Parts是Javascript之美的最好的书籍。同时Javascript由于设计仓促,也有很多从语言角度来说非常傻b的现象。 网站WTFJS收集各种有趣的Javascript错误,供程序员茶余饭后谈资,未尝不是另一种美。 下面这段代码展示了Javascript对最大最小值的处理,导致了最大值比最小值小的现象。 [source lang="javascript"] Math.max(); // -Infinity Math.min(); // Infinity [/source] 看上去不错,只要你真拿他们来跟其他数值进行比较。但是用作不比较,还真不知道最大最小值有什么用途? [source lang="javascript"] console.log(9 < Math.max()); //false console.log(9 < Math.min()); //true Math.min() < Math.max();…

Continue Reading

End of content

No more pages to load