string是关键字吗?为何可以当作变量名呢?
----------------------------------------
我非常不理解,按理说 string 应该是关键字吧?因为typeof 一个字符串,返回的就是这个 string 呀,
所以不应该可以当变量名用呀,但是我测试发现,确实可以当变量名。
而且,竟然 Function 也可以当变量名,这可是构造函数的关键字呀。 var String="20";
var string="hhh"
alert(String+string);
var Function=12.56;
alert(Function);

解决方案 »

  1.   

    如果要严格区分的话
    string不是关键字,而是保留字
    就是说保留给将来使用的标识符。
    JS中的好多都是例如class,undefined是保留字
    一般的书籍介绍时都说是关键字
    而且你一般情况下不用区分什么是关键字,什么是保留字。
    只知道关键字和保留字都不能用作程序中的标识符就可以了。
    这主要看程序员自己的规范而不是编译器的检查。
    就好像你使用a表示一个人名,编译器也不会报错的,但是这个程序也就你能看懂。
      

  2.   

    我一直认为,只要是有特殊意义的字符,就是关键字,看来在javascript中,这样的想法是错的。
    string,String,Function,虽然是有特定意义的字符,但是却不是关键字,可以用做变量名。这种情况,在其他的语言中,是不存在的吧。好象是,在其他的编程语言中,只要有特定意义的字符串,就会认为是关键字的,
    不能用户使用,比如用作变量名等。