网络编程
位置:首页>> 网络编程>> JavaScript>> Javascript命名禁区[110407.updated]

Javascript命名禁区[110407.updated]

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

标签:命名,javascript,前端开发

通常我们会在一些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命名禁区

0
投稿

猜你喜欢

  • 说到 IE 的 bug,一个臭名昭著的例子是它对于“盒模型”的错误解释:在 IE5.x 以及 Quirks 模式的 IE6/7 中,将 bo
  • 多版本并发控制Multiversion Concurrency Control大部分的MySQL的存储 引擎,比如InnoDB,Falcon
  • 如何随机显示图片计数器?一切就绪,看看我们的代码:count.asp< html >< head >
  • 阅读上一篇:打造设计你自己的字体 Ⅱ永远都在寻觅字体设计的灵感。夏天过后,我买了一套便宜的书法钢笔,说服自己,它会让我的鸡爬字产生脱胎换骨的
  • 一:操作redis1:redis拓展安装composer require predis/predis或者你也可以通过 PECL 安装&nbs
  • 一个Link被点击之后有可能是打开新窗口,也有可能是刷新当前窗口,这两种打开方式一直并存于互联网中。 作为测试对象,于25日将打开方式改为‘
  • Hihi, 大家好~ 最近有不少人都提及了网页上该如何选择字体的问题。问题虽然小,但是却是前端开发中的基本,因为目前的网页,还是以文字信息
  • 如何在数据库中限制检索行数?为了照顾显示器屏幕的大小,使检索结果更整齐明了一些,请问,可以控制数据库的检索行数吗?  &
  • 如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,我们今天就来学习一下:推荐:网页弹出窗口
  •  在不久前的一天,当我为了解决一个语法问题来翻阅VBscript文档时,偶然间发现在了下面的一句话:  &nb
  • 原文地址:30 Days of Mootools 1.2 Tutorials - Day 13 - Regular ExpressionsM
  •     (一)原理 小偷程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页。比如新闻小偷程序,
  • OL定义有序列表的时候,除非指定list-style-position:inside;,否则文字和前导符是有缩进的。但有的时候,OL定义的列
  • 不知道工商银行帐号是否是这样的格式, 如果错了请大家见谅!<script language="javascript"
  • 锚点是“top”,可以放在页面的任何位置,一般是页首。程序就是对锚点出现的判断,我设置的数值是4,意思是出现4个动态数据就出现一个锚点,少于
  • //********************************************************************
  • MYSQL在一个字段值前面加字符窜,如下:member 表名card 字段名update member SET card = '00
  • 今天在看见了一堆不错的非洲的web 2.0网站的Logo,于大家一起欣赏:非洲web2.0网站的logo大部分和平时看见的web2.0网站l
  • 为了降低用户注册难度,国际站的主注册表单一直在改进。主注册三月至今发生了两次较大的变化,现在对表单调整的地方分解如下:1.  两步
  • 高层的期望“3个月内,我希望网站能增加X注册用户,每日的独立IP到Y,网站盈利达到Z……”作为一个团队的领袖或者产品负责人,这样的期望是根据
手机版 网络编程 asp之家 www.aspxhome.com