随笔分类 - JavaScript
JS中文档坐标和视口坐标整理记录
摘要:当我们在讨论元素的位置时,必须要理清楚所使用的是文档坐标还是视口坐标。 如果窗口没有滚动条或者文档比视口要小的时候,文档和视口的坐标系统是同一个。 但是一般来讲两种坐标的转换必须加上或者减去偏移量,例如一个元素N的视口坐标为(120,400),切滚动条从(0,0)移动到了(0,200).那么此时元素N的文档坐标就为(120,600). 下面分别说明如何查询窗口滚动条的位置及视口的尺寸大小。1.查询滚动条的位置var doc=document,docElem=doc.documentElement,docBody=doc.body;var scroll_left=docElem.scr...
阅读全文
js中给对象设置null值与垃圾回收的关系
摘要:js中优化内存占用的最佳防止之一:一旦数据不再有用,最好将其值设置为null来释放引用。此做法适用于大多数全局变量和全局对象的属性;局部变量会在它们离开执行环境时自动被解除引用。var globalVar=null;当我们不再不使用globalVar的时候,需要手动为它解除引用。解除引用不意味着自动回收该值所占用的内存,而是让值脱离执行环境,以便GC(Garbage Collection)垃圾回收机制下次运行时将其回收
阅读全文
关于js作用域链的一篇文章
摘要:http://www.iteye.com/topic/1120344
阅读全文
理解constructor属性
摘要:constructor属性始终指向创建当前对象的构造函数。一般情况下的constructor的属性非常容易理解。var arr=[1,2,3,4,5];//等价于var arr=new Array(1,2,3,4,5);alert(arr.constructor===Array)//truevar Foo=function(){}//等价于var Foo=new Function(){};alert(Foo.constructor===Function);//true//由构造函数实例化一个obj对象var obj=new Foo();alert(obj.constructor===Foo);
阅读全文
初看原型---prototype
摘要:首先来看下prototype这个对象存在的位置: js的所有function类型的的对象都有一个prototype属性,这个prototype属性本身又是一个object类型的对象。 事实上构造函数的prototype上定义的所有属性和方法,都是可以通过其构造的对象直接访问调用的。也可以这么说,prototype提供了一群同类对象共享属性和方法的机制 。 function Person(name){//基类构造函数 this.name=name; }; Person.prototype.sayHello=function (){ alert('...
阅读全文
Javascript 中undefined和null的区别
摘要:null: null通常意味着无值,但是一个函数如果没有其他匹配的值,也可能将他作为返回值。尽管这种情况不常发生。// 举例:假设HTML中没有一个id为test的元素2 var x=document.getElementById('test');3 alert(x);//x变成了null,你会发现我们在作对象检测时,常常会利用这种情况。undefined: 返回undenfined的情况有三种:你声明了一个变量,但没有给他赋值。你访问了一个对象尚未声明的属性。你定义了函数的参数,但没有把值传递给他。 针对第一条规则:var x;alert(x);//你声明了x,但没有给他赋值
阅读全文
判断浏览器的DOM模型
摘要:var isie=navigator.userAgent.indexOf('MSIE') !=-1;//ie 模型var W3CDOM=(document.createElement && docment.getElementByTagName && ! isie);//w3c模型
阅读全文
浙公网安备 33010602011771号