javascript中的name以及关键字

做表单验证时,将name命名为变量“var name=document.getElementById("name");”,用谷歌浏览器 打开页面,还未输入文本时检测用户名输入文本长度,应该长度为0的,但是发现没有什么卵用,将变量名改为name1之后就好了。

这让身为小白的我很好奇,经过查找资料发现name具有特殊之处,它不是javascript的关键字,也不是保留字(保留字在某种意思上是为将来的关键字而保留的单词,因此保留字也不能被用作变量名或函数名),页面在IE浏览器上运行正常,但是Safari,chrome,Firefox和Opera这些浏览器都给函数定义了一个非标准的name属性,是window的自带全局属性,所以在全局声明name变量名会出现访问异常问题。

解决了我的问题,顺便查阅了js的关键字以及保留字,整理如下。

// javascript的关键字

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



/* javascript的保留字 */

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

注意

1.如果把关键字用作变量名或函数名,可能得到诸如 "Identifier Expected"(应该有标识符、期望标识符)这样的错误消息;

2.如果将保留字用作变量名或函数名,那么除非将来的浏览器实现了该保留字,否则很可能收不到任何错误消息。当浏览器将其实现后,该单词将被看做关键字,如此将出现关键字错误。

你可能感兴趣的:(javascript)