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

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

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

<script>
var fullScreen = function(){
 alert('run');
}
/*
以函数声明的形式允许重置,有兴趣的朋友研究下
~function fullScreen(){alert('run')}();
ps.110402: 请一朋友测试ff4.0,函数表达式也允许重置reset了,但还是尽量别占用它
*/
fullScreen();
</script>

<script>
var status = [true,'hello',false,3,4];
alert(status);
alert(status[1]);
alert(typeof status);
~function(){
var status = [true,'hello',false,3,4];
alert(status[1]);
}();
</script>

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

此类问题,报错还好,如果当时没有报错,而当项目上线后,在某些特定环境下,它才执行异常,这时候来查错才真的要人老命。

SO,我整理了一份“命名禁区”的文档,供自己查询,给大家参考,不必记住它,但至少得有个印象。

    一、标识符允许的字符集。

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

    二、IC交易网变量名、函数名、循环标记命名禁区。

    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 use 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全局变量

5、FF全局变量

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
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、保留字


    2、未来保留字

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

转载于:https://www.cnblogs.com/aspxnets/archive/2011/07/05/2098701.html

Javascript命名禁区有哪些相关推荐

  1. JavaScript命名规范与变量声明的注意事项

    (一)JavaScript命名规范: 1.严格区分大小写. 2.变量的命名必须以字母或_或$开头,余下部分可以是任意的字幕,数字,或者是_或者是$. 3.不能用关键字或者是保留字命名. 4.JavaS ...

  2. JavaScript命名冲突不可避免?

    [CSDN 编者按]从1995年开始,本文作者Dr.Axel Rauschmayer就专门从事JavaScript和Web开发,已经有30多年了.2010年,他获得慕尼黑大学信息学博士学位.自2011 ...

  3. SAP Spartacus TypeScript和编译后的JavaScript命名规范

    文件名的命名规范:以连接线(hyphen)连接名称片段: 对应的Spartacus-core.js: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  4. javaScript命名规范

    必须以字母.$符号或下划线开头:可以包括数字.字母.$符号和下划线:不能包含空格和其他标点符号:区分大小写:最好采用驼峰命名法 转载于:https://www.cnblogs.com/qqm16113 ...

  5. 二、JavaScript基础 学好jQuery要了解的

    JavaScript与ECMAScript ECMAScript 通过ECMA-262标准的脚本程序设计语言 ECMAScript标准下有 javascript jscript actionscrip ...

  6. 变量命名规则_JavaScript基础教程(二)变量、常量与运算符

    常量变量与运算符 从本次课程开始我们将进入JavaScript基础教程学习,本课程附带PPT讲义,课程主要针对JavaScript学习入门者. 变量 在计算机程序设计语言中,变量是存储数据的容器,变量 ...

  7. 这些年微软相关的技术总结, Javascript在客户端的使用

    http://antkillerfarm.github.io/ C#相关 1.XmlReader XmlReader是.NET中处理XML的类.之前的W3C已经提出了DOM和SAX两种模型.作为最早的 ...

  8. JavaScript学习(五)

    JavaScript 正则表达式 正则表达式是构成搜索模式(search pattern)的字符序列.该搜索模式可用于文本搜索和文本替换操作. 例:var patt = /w3school/i; 例子 ...

  9. (转载)JavaScript创始人Brendan Eich访谈录

    JavaScript创始人Brendan Eich访谈录 Brendan Eich于1995年在Netscape发明了JavaScript语言,这个语言在过去的一些年里曾是一个最被误解的语言,随着AJ ...

  10. JavaScript创始人Brendan Eich访谈录(转)

    简介 Brendan  Eich于1995年在Netscape发明了JavaScript语言,这个语言在过去的一些年里曾是一个最被误解的语言,随着AJAX和Web  2.0的发展,人们逐渐正视Java ...

最新文章

  1. IE6使用png透明图片的方法
  2. mac 环境变量设置
  3. ProtoBuf的使用以及原理分析
  4. Codeforce 1255 Round #601 (Div. 2) C. League of Leesins (大模拟)
  5. 使用 Avalonia 开发 UOS 原生应用
  6. 高德地图路线规划 时间_路线准、播报拥堵及时,这次自驾出行高德地图可算是帮了大忙...
  7. python while循环if_详解python基础之while循环及if判断
  8. mysql 建表时建立索引_mysql 分享建表和索引的几点规范
  9. 无线策略服务器,无线网络中的分布式资源管理策略研究
  10. 大数据分析有哪些分析模型
  11. datatable中某一列最小值_操作dom获取datatable中的某一行的某一列的数据
  12. HTC T328W刷机包 仿三星S5 UI美化 精简 S5下拉
  13. 二维离散傅里叶变换 matlab
  14. 谷歌浏览器 F12或右键检查 开发者工具DevTool打开慢问题
  15. MATLAB国产替代软件出现,这些学校已解决被禁用问题
  16. 什么是交换?路由?路由交换?
  17. 【C语言循环结构题目】在屏幕上打印n行*号倒三角形(此处n为6)
  18. html谷歌兼容代码,让网站变灰的css代码(支持IE、Firefox和Chrome)
  19. 开发者测评:相比 Harbor,我选择 ACR 的三点原因
  20. Maven的安装步骤(保姆级安装教程)

热门文章

  1. presto 使用 部署_探秘Presto+Alluxio高效云端SQL查询
  2. ie8 html5上传,兼容IE8的file单文件上传(jquery.form+formdata)
  3. DPDK学习1 -- DPDK环境搭建和测试helloword
  4. SEGGER-RTT调试(代替串口printf输出)的使用方法
  5. 深度学习中降低过拟合(OverFitting)的方法
  6. mysql 完整性的概念_MySQL中一些深入概念整理
  7. python 车牌识别简单_如何用 Python 识别车牌
  8. linux 串口 断帧,STM32f103使用串口中断发送数据时出现断帧是什么原因?
  9. linux chown 命令
  10. phpstorm 设置注释