Below you will find pages that utilize the taxonomy term “javascript”
February 15, 2016
JavaScript垃圾回收机制
"一、垃圾回收的必要性\n下面这段话引自《JavaScript权威指南(第四版)》\n_ 由于字符串、对象和数组没有固定大小,所有当他们的大小已知时,才能对他们进行动态的存储分配。JavaScript程序每次创建字符串、数组或对象时,解释器都必须分配内存来存储那个实体。只要像这样动态地分配了内存,最终都要释放这些内存以便他们能够被再用,否则,JavaScript的解释器将会消耗完系统中所有可用的内存,造成系统崩溃。_\n这段话解释了为什么需要系统需要垃圾回收,JS不像C/C++,他有自己的一套垃圾回收机制(Garbage Collection)。JavaScript的解释器可以检测到何时程序不再使用一个对象了,当他确定了一个对象是无用的时候,他就知道不再需要这个对象,可以把它所占用的内存释放掉了。例如:\nvar a = \u0026#34;before\u0026#34;; var b = \u0026#34;override a\u0026#34;; var a = b; //重写a 这段代码运行之后,“before”这个字符串失去了引用(之前是被a引用),系统检测到这个事实之后,就会释放该字符串的存储空间以便这些空间可以被再利 …"
November 23, 2010
js里面如何获取网络地址的图片的高度和宽度 (变通办法)
"原图片是 :\n(function(){ var img=document.createElement(‘img’);//创建一个img元素 img.src=”http://gg.blueidea.com/2008/blueidea/flash2008.gif”;//指定src img.style.position=”absolute”;//防止正常的内容变形 img.style.visibility=’hidden’;//藏起来 var inj=document.getElementById(‘box’).appendChild(img);//插入到box中。当然插入到document.body也可以 alert(‘宽:’+inj.offsetWidth);//然后就可以通过 offset 取得宽和高了 alert(‘高:’+inj.offsetHeight); })();\n简单地说就是把图片放入一个自动伸缩的DIV中,然后获取DIV的宽和高!"
April 24, 2010
JS内存释放问题
"一个内存释放的实例\nCollectGarbage, 是IE的一个特有属性,用于释放内存的使用方法嘛应该是,将该变量或引用对象,设置为null或delete然后在进行释放动作 在 做CollectGarbage前,要必需清楚的两个必备条件:\n引用\n– 一个对象在其生存的上下文环境之外,即会失效。\n– 一个全局的对象在没有被执用(引用)的情况下,即会失效。\n========= 美丽的分割线 =========\n//——————————————————— // JavaScript对象何时失效 //——————————————————— function testObject() { var _obj1 = new Object(); }\nfunction testObject2() { var _obj2 = new Object(); return _obj2; }\n// 示例1 testObject();\n// 示例2 testObject2()\n// 示例3 var obj3 = testObject2(); obj3 = null;\n// 示例4 var obj4 = …"
April 23, 2010
js过滤word格式
"function cleanAndPaste(html) …{ // Remove all SPAN tags html = html.replace(/]\u0026gt;/gi, “” ); // Remove Class attributes html = html.replace(/\u0026lt;(w[^\u0026gt;]*) class=([^ |\u0026gt;]*)([^\u0026gt;])/gi, “\u0026lt;$1$3″) ; // Remove Style attributes html = html.replace(/\u0026lt;(w[^\u0026gt;]*) style=”([^”]*)”([^\u0026gt;])/gi, “\u0026lt;$1$3”) ; // Remove Lang attributes html = html.replace(/\u0026lt;(w[^\u0026gt;]*) lang=([^ |\u0026gt;]*)([^\u0026gt;])/gi, “\u0026lt;$1$3”) ; // Remove XML elements and declarations html = …"
May 21, 2009
addEventListener的参数说明
"我想大家对这个函数的前两个参数已经很了解了吧,主要是第三个参数不很好理解。我查了一些资料,弄明白了这个问题,所以记录下来了。下面的内容,基本上是参考别人的。\n第三个参数叫做useCapture,是一个boolean值,就是true or false,如果是rue的话就是浏览器会使用Capture方式,false的话是Bubbling,只有在特定状况下才会有影响,通常建议是false,而会有影响的情形是目标元素(target element)有父元素(ancestor element),而且也有同样的事件对应函数,我想,看图比较清楚。\n像這張圖所顯示的,我的範例有兩層div元素,而且都設定有click事件,一般來說,如果我在內層藍色的元素上click不只會觸發藍色元素的click事件,還會同時觸發紅色元素的click事件,而useCapture這個參數就是在控制這時候兩個click事件的先後順序。如果是false,那就會使用bubbling,他是從內而外的流程,所以會先執行藍色元素的click事件再執行紅色元素的click事件,如果是true,那就是capture,和bubbling相反 …"
May 21, 2009
attachEvent与addEventListener区别
"适应的浏览器版本不同,同时在使用的过程中要注意 attachEvent方法 按钮onclick addEventListener方法 按钮click\n有关addEventListener函数的相关参数 请点击这里查看\n两者使用的原理:可对执行的优先级不一样,下面实例讲解如下: attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)\naddEventListener方法 用于 Mozilla系列\n举例: document.getElementById(“btn”).onclick = method1; document.getElementById(“btn”).onclick = method2; document.getElementById(“btn”).onclick = method3;如果这样写,那么将会只有medhot3被执行\n写成这样: var btn1Obj = document.getElementById(“btn1”); //object.attachEvent(event,function); …"
November 4, 2008
JavaScript isNaN() 函数
"义和用法 isNaN() 函数用于检查其参数是否是非数字值。\n语法 isNaN(x) 参数\n描述\nx\n必需。要检测的值。\n返回值 如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。\n说明 isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。\n如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。\n提示和注释 提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。\n实例 在本例中,我们将使用 isFinite() 在检测无穷数:\n\u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; document.write(isFinite(123))\t// …"
November 4, 2008
JavaScript push() 方法
"定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。\n语法 arrayObject.push(newelement1,newelement2,....,newelementX) 参数\n描述\nnewelement1\n必需。要添加到数组的第一个元素。\nnewelement2\n可选。要添加到数组的第二个元素。\nnewelementX\n可选。可添加多个元素。\n返回值 把指定的值添加到数组后的新长度。\n说明 push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。\n提示和注释 注释:该方法会改变数组的长度。\n提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。\n实例 在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度:\n\u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; var arr = new Array(3) arr[0] = …"
September 27, 2008
js中arguments.length的意思
"function imagePreload() { var imgPreload = new Image(); for (i = 0; i \u0026lt; arguments.length; i++) { imgPreload.src = arguments[i]; } } imagePreload(‘001.gif’, ‘002.gif’, ‘003.gif’, ‘004.gif’, ‘005.gif’)\n这个是js中的arguments.主要是可以对输入的参数进行跟踪。 这如作者所举出的例子:imagePreload函数出入了5个参数,所以在js代码中的 arguments.length会知道你输入的了5个参数。并可以通过索引器获得五个参数的值。"