摘要: 参见https://developer.mozilla.org/en-US/docs/JavaScript/Reference/global_objects/array/indexofarray.indexOf(searchElement[, fromIndex])接受一个搜索值(searchElement),将其与数组(array)中的每个元素比较。如果找到该值,返回表示该数组元素的一个索引。如果没有找到,返回-1。由于IE8不支持indexof,Mozilla针对这一函数的解决方案: 1 if (!Array.prototype.indexOf) { 2 Array.prototype.i 阅读全文
posted @ 2013-05-09 22:56 Laborc_L 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 介绍IE中很多奇怪的渲染问题可以通过赋予其“layout”得到解决。这些 bug 可以通过赋予相应元素某个宽度或高度解决。这便引出关于“layout”的一个问题:为什么它会改变元素的渲染特性,为什么它会影响到元素之间的关系?定义“layout”是一个IE/WIN的私有概念,决定了一个元素如何显示以及约束其包含的内容、如何与其他元素交互和建立联系、如何响应和传递应用程序事件/用户事件等。这种渲染特性可以通过某些CSS属性被不可逆转地触发。而有些HTML元素则默认就具有“layout”。PS:一个对象的layout属性被激活,它的具体表现就是haslayout=true。我们可以用IE Devel 阅读全文
posted @ 2013-05-09 17:07 Laborc_L 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 其实如果完全掌握了this的工作原理,自然就不会走进这些坑。来看下以下这些情况中的this分别会指向什么:1.全局代码中的thisalert(x);// 全局变量x值为2全局范围内的this将会指向全局对象,在浏览器中即使window。2.作为单纯的函数调用function fooCoder(x) { this.x = x;}fooCoder(2);alert(x);// 全局变量x值为2这里this指向了全局对象,即window。在严格模式中,则是undefined。3.作为对象的方法调用var name = "clever coder";var person = { n 阅读全文
posted @ 2013-05-09 10:20 Laborc_L 阅读(115) 评论(0) 推荐(0) 编辑
摘要: slice的一个方便的用法:把函数参数属性转换为一个正确的数组;var args = Array.prototype.slice.call(arguments);以下内容来自肥杜http://www.cnblogs.com/littledu/archive/2012/05/19/2508672.html我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换)如:1 var a={length:2,0:'first& 阅读全文
posted @ 2013-05-09 00:53 Laborc_L 阅读(287) 评论(0) 推荐(0) 编辑