随笔分类 - JavaScript
摘要:(转自:http://www.jb51.net/article/291.htm)Ajax内部交流文档一、使用Ajax的主要原因 1、通过适当的Ajax应用达到更好的用户体验; 2、把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。二、引用 Ajax这个概念的最早提出者Jesse James Garrett认为: Ajax是Asynchronous JavaScript and XML的缩写。 Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自...
阅读全文
摘要:(转自:http://www.mxria.com/helps/js_error/trap_error_1572.htm)由于 JavaScript 是异步的,可以使用setTimeout和setInterval来计划执行函数。注意:定时处理不是ECMAScript 的标准,它们在DOM (文档对象模型)被实现。function foo(){}var id = setTimeout(foo,1000);// 返回一个大于零的数字当setTimeout被调用时,它会返回一个 ID 标识并且计划在将来大约1000 毫秒后调用foo函数。foo函数只会被执行一次。基于 JavaScript 引擎的计时
阅读全文
摘要://判断undefined:var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined"); }//判断null:var tmp = null; if (!tmp && typeof(tmp)!="undefined" && tmp!=0){ alert("null"); }//判断NaN:var tmp = 0/0; if(isNaN(tmp)){ alert("NaN"); }/
阅读全文
摘要:利用Thomas Loo开发的ECMAScript Cruncher(ESC 可以http://www.saltstorm.net/depo/esc/或51AJAX.com下载)。ESC是一个小巧的Window Shell脚本。利用Thomas Loo开发的ECMAScript Cruncher(ESC 可以下载)。ESC是一个小巧的Window Shell脚本。运行ESC,必须使用Windows系统。打开一个控制台窗口,输入以下命令:cscript ESC.wsf -l [0-4] -ow outputfile.js inputfile.js第一部分,cscript是Windows Shel
阅读全文
摘要:一、错误处理的重要性以前,javascript总是因为会出现奇怪的令人困惑的错误消息而知名,调试这种信息确实是一种痛苦的经历。因此,第四版的浏览器(IE4.0和Netscape4.0)包含了一些基本的错误处理功能。不久之后,ECMA和ECMASCript第三版中提出新的解决方案。最新的ECMAScript添加了异常处理机制,采用了从Java中移植过来的模型,第三版用ECMAScript第二版中的一些保留字实现了try…catch..finally结构以及throw操作符1.1、早期浏览器的错误处理早期的浏览器(如IE3.0)没有错误处理。函数通过返回一个无效值(一般是null、false或-1
阅读全文
摘要:在不确定变量类型的情况下,判断Javascript变量是否为空不要使用:if(tmp){}上述判断的问题在于,例如:当tmp的值为数字0时,也会返回false。所以尽量使用:if(tmp != null){}下面是if(tmp){}判断的结果: if(tmp) if(tmp != null)tmp未定义时 //false //falsevar tmp; //false //falsevar tmp = 0; //false //truevar tmp = 10; ...
阅读全文
摘要:var values=new Array();values["No1"]="beijing";values["No2"]="tianjin";values["No3"]="shanghai";values["No4"]="guangzhou";alert("values="+values);//下面的for循环无法进入,因为数组下标是字符串,在计算数组长度时得到的是0!!!!for(var i=0; i<val
阅读全文
摘要:结论:对于数字、字符串等是将它们的值传递给了函数参数,函数参数的改变不会影响函数外部的变量。 对于数组和对象等是将对象(数组)的变量的值传递给了函数参数,这个变量保存的指向对象(数组)的地址。当函数改变这个地址指向的对象(数组)的内容时,同时也改变了函数外部变量指向的对象(数组)的内容;当函数改变的是变量的地址时,实际就与函数外部的变量失去了联系,变成了完全不同的对象了,不会对函数外部对象造成改变。很多人认为 JS 中参数有两种传递方式:数字、字符串等按值传递;数组、对象等按地址(引用)传递。其实都是一种值传递。下面的例子很好的说明了这一点。varv1 = []varv2 = {};va...
阅读全文
摘要:由于javascript中的replace函数无法替换全部匹配的字符串,所以需要为String类增加一个方法,代码如下:String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith); } else { ...
阅读全文
摘要:var str = '{"dir":"kunhony","param":"archive"}';var aaa = JSON.parse(str);console.log(aaa.param);上面的代码没有问题,但是如果将var str = '{"dir":"kunhony","param":"archive"}'; 改为:var str = “{ 'dir': 'kunhony
阅读全文
摘要:javascript里面对象的等号赋值操作是引用方式,如果想要使用拷贝赋值操作需要实现像java中clone一样的功能,实现方法就是逐项拷贝对象的内容。实现如下:方法一:function clone(myObj){ if(typeof(myObj) != 'object') return myObj; if(myObj == null) return myObj; var myNewObj = new Object(); for(var i in myObj) myNewObj[i] = clone(myObj[i]); ret...
阅读全文
摘要:要返回值为testFun的话:定义变量:var fun = eval("testFun");然后可以用函数fun()了。如果有参数的话可以直接fun(xa,xb,...)
阅读全文

浙公网安备 33010602011771号