欢迎来到天天文库
浏览记录
ID:30784943
大小:111.02 KB
页数:11页
时间:2019-01-03
《【经验总结】编写javascript代码时应遵循的14条规律_javascript技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、【经验总结】编写JavaScript代码时应遵循的14条规律本文讲述了编写JavaScript代码时应遵循的14条规律。分享给大家供大家参考,具体如下:javascript中,变量不是全局范围的就是函数范围的,使用”var”关键词将是保持变量简洁明了的关键。当声明一个或者是全局或者是函数级(function-level)的变量,需总是询置”var”关键词,下面的例子将强调不这样做潜在的问题。不使用Var造成的问题vari二0;//Thisisgood-createsaglobalvariablef
2、unctiontest(){for(i=0;i<10;i++){alert("HelloWorld!,z);}}test();alert(i);//Theglobalvariableiisnow10!因为变量函数中变量i并没有使用v肚使其成为函数级的变量,在这个例子中它引用了全局变量。总是使用var来声明全局变量是一个很多的做法,但至关重要的一点是使用var定义一个函数范围的变量。下面这两个方法在功能上是相同的:止确的函数functiontest(){vari二0;for(i=0;i<10;i++
3、){alert("HelloWorld!,z);}}止确的函数functiontest(){for(vari二0;i<10;i++){alert("HelloWorld!");}2.特性检测而非浏览器检测一些代码是写来发现浏览器版木并基于用户正使用的客户端的对其执行不同行为。这个,总的來说,是一个非常糟的实践。更好的方法是使用特性检测,在使用一个老浏览器可能不支持的高级的特性Z前,首先检测(浏览器的)是否有这个功能或特性,然后使用它。这单独检测浏览器版本来得更好,即使你知道它的性能。你可以在htt
4、p://www.jibbering.com/faq/faq_notes/notbrowserdetect.html找至一个深入讨论这个问题的文章。--例了:if(document.getElementByld){varelemenl二document.getElemenlById('MyId');}else{alcrt('Yourbrowserlacksthecapabiliticsrequiredtorunthisscript!');}3.使用方括号记法当访问由执行时决定或者包括要不能用”・”号
5、访问的对象屈性,使用方括号记法。如果你不是一个经验丰富的Javascript程序员,总是使用方括号是一个不错的做法对象的属性由两种固定的方法来访问:”•”记法和”[]“方括号记法:号记法:MyObject・property“[]“方括号记法:MyObject["property"]使用”・”号,属性名是硕代码,不能在执行时改变。使用”[]“方括号,属性名是一个通过计算属性名而來的字符申。字符申要以是皱代码,也可能是变量,甚至可以是一个调回一个字母串值的函数。如果一个屈性名在执行产生,方括号是必须,
6、如果你有“valuel",“value2",和“valued这样的属性,并且想利用变量i二2來访问这个可以运行:MyObject["value"+i]这个不可以:MyObject.value+i并月•在某些服务器端环境(PHP、Struts等)下,Form表单被附加了[]号来表示Form表单在服务器端必须被当作数组来对待。如此,用”•”号来引用一个包含[]号的字段将不会执行,因为[]是引用一个Javascript数组的语法。所以,[]号记法是必须的:这个可以运行:formref.elements[
7、"name[]"]这个不可以:formref・elements.name[]推荐使用”[]“方括号记法是说当其需要时(明显地)总是使用它。当不是严格需要使用它的时候,它是一个私人的偏好和习惯。一个好的经验原则是,使用”・”号记法访问标准的对象属性,使用”□“方括号记法访问由页面定义的对象属性。这样,document["getElementByld"]()是一个完美可行的”□“方扌舌号记法用法,但document.getElementByld()在语法上是首选,因为getElementByld是一个
8、DOM规范屮定义的一个标准文档对象属性。混合使用这两个记法使哪个是标准对象屈性,哪个屈性名是由上下文所定义的,在代码屮显得清晰明了:document・forms[〃myformname"]・elements[〃myinput"]・value这里,forms是document的一个标准属性,而表单名myformname则是由页而所定义的。同时,elements和value属性都是由规范所定义的标准属性。而myinput则是由页面所定义的。这页是句法让人非常容易理解(代码的内容),是-
此文档下载收益归作者所有