Javascript命名禁区[110407.updated]

时间:2011-04-28 09:48:00 

通常我们会在一些javascript的书籍上看到,使用Javascript保留字作为标识符(变量名、函数名、循环标记等)时,会引起程序报错!

但如果是有一定经验的前端开发人员,肯定知道在实际应用中,命名禁区不限于这些保留字!!!

没碰到过?那我们从一个例子开始!

Firefox(测试: ff3.6)中运行如下代码:

IE(测试: ie6,ie8)中运行如下代码:


 

110407添加,引起 Chrome bug( Chrome下运行)

都不是我们预期的效果,有木有??

此类问题,报错还好,如果当时没有报错,而当项目上线后,在某些特定环境下,它才执行异常,这时候来查错才真的要人老命。
SO,我整理了一份“命名禁区”的文档,供自己查询,给大家参考,不必记住它,但至少得有个印象。

一、标识符允许的字符集。
在ECMAScript V3中,标识符除首字母外,允许使用除 (./=?:&#\{}()<>[]|~!’”\*^) 等特殊字符外所有的unicode字符集。

二、变量名、函数名、循环标记命名禁区。

1、保留字

break function return typeof case do if switch var catch else in this void continue false instanceof throw while debugger finally new true with default for null try

2、未来保留字

abstract double goto native static boolean enum implements package super byte export import private synchronized char extends int    protected throws class final interface public transient const float long short volatile

3、扩展列表

as is namespace [color=DarkOrange]use[/color] arguments encodeURI Infinity Object String Array Error isFinite parseFloat SyntaxError Boolean escape isNaN parseInt TypeError Date eval Math RangeError undefined decodeURI EvalError NaN ReferenceError unescape decodeURIComponent Function Number RegExp URIError

4、IE全局变量

status onresize onmessage parent onhashchange defaultStatus name history maxConnectionsPerServer opener location screenLeft document onbeforeprint screenTop clientInformation onerror onfocus event onload onblur window closed screen onscroll length frameElement self onunload onafterprint navigator frames sessionStorage top clipboardData external onhelp offscreenBuffering localStorage onbeforeunload

5、FF全局变量

getInterface addEventListener loadFirebugConsole console window cehomepage document netscape XPCSafeJSObjectWrapper XPCNativeWrapper Components sessionStorage globalStorage getComputedStyle dispatchEvent removeEventListener name parent top dump getSelection scrollByLines scrollbars scrollX scrollY scrollTo scrollBy scrollByPages sizeToContent setTimeout setInterval clearTimeout clearInterval setResizable captureEvents releaseEvents routeEvent enableExternalCapture disableExternalCapture open openDialog frames applicationCache self navigator screen history content menubar toolbar locationbar personalbar statusbar directories closed crypto pkcs11 controllers opener status defaultStatus location innerWidth innerHeight outerWidth outerHeight screenX screenY mozInnerScreenX mozInnerScreenY pageXOffset pageYOffset scrollMaxX scrollMaxY length fullScreen alert confirm prompt focus blur back forward home stop print moveTo moveBy resizeTo resizeBy scroll close updateCommands find atob btoa frameElement showModalDialog postMessage localStorage

4、5这是最容易被忽视的部分,有的变量允许你重新设置,但最好不要随意去占用它,除非你非常清楚你在干什么,及可能造成的后果


三、属性方法命名禁区。

1、保留字

break delete function return typeof case do if switch var catch else in this void continue false instanceof throw while debugger finally new true with default for null try

2、未来保留字

super export import extends const class
* 这里主要针对字面量对象{},eg:
var testObj = {class: 3}; //ie将报错
var testObj = {}; testObj['class'] = 3 //则不会

原文地址:Javascript命名禁区

标签:命名,javascript,前端开发
0
投稿

猜你喜欢

  • 交互设计实用指南系列(9)—一次点击

    2010-02-08 12:42:00
  • 纯CSS无限级下拉菜单

    2009-09-17 11:29:00
  • 如何在数据库中限制检索行数?

    2010-06-22 21:04:00
  • ASP处理多关键词查询实例代码

    2008-11-21 17:36:00
  • 如何做一个文本书写器?

    2010-07-12 18:58:00
  • 科讯CMS编辑器会自动更改代码

    2008-12-12 13:00:00
  • ASP 关于动态数据显示页面得锚点

    2007-11-04 20:28:00
  • 什么是XSL?

    2007-11-05 19:47:00
  • 教学演示-UBB,剪贴板,textRange及其他

    2008-01-27 13:46:00
  • MySQL存储过程savepoint rollback to

    2008-12-03 16:02:00
  • 页面制作中要注意的编码问题

    2008-08-11 12:43:00
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结

    2012-08-21 10:22:21
  • 让网站容易被发现

    2009-04-20 20:35:00
  • oracle SQL命令大全

    2009-07-02 11:55:00
  • 用javascript给表格加滚动条

    2008-10-15 10:03:00
  • asp操作Excel类源码

    2009-12-25 19:01:00
  • SQLServer中字符串左对齐或右对齐显示的sql语句

    2012-06-06 19:36:45
  • 利用CSS属性实现进度条的方式

    2010-02-25 12:31:00
  • 我所钟爱的HTML5资源

    2010-07-23 09:25:00
  • on error goto (Vbscript)和try catch

    2008-08-04 13:22:00
  • asp之家 网络编程 m.aspxhome.com