在javascript中定义数组并将数组名称保留为名称

Pan*_*ani 5 javascript arrays

在javascript中执行以下代码时:

var name=["Pankaj","Kumar"] ;

    for( var i=0;i<name.length;i++)
    {
        console.log("Hello "+name[i]);
    }
Run Code Online (Sandbox Code Playgroud)

据我说,它应该输出:

Hello Pankaj   
Hello Kumar
Run Code Online (Sandbox Code Playgroud)

但是javascript引擎输出:

Hello P  
Hello a  
Hello n  
Hello k  
Hello a  
Hello j  
Hello ,  
Hello K  
Hello u  
Hello m  
Hello a  
Hello r  
Run Code Online (Sandbox Code Playgroud)

如果我们将数组名称更改为名称,则根据预期输出:

Hello Pankaj  
Hello Kumar  
Run Code Online (Sandbox Code Playgroud)

name不是javascript保留的关键字.

你能告诉我这种行为的原因吗?

Bla*_*mba 1

这个问题已经说明了一切

名称已附加到您所在的窗口,因此window.name请避免使用它或IIFE按如下方式使用以避免污染全局命名空间

(function(){
  var name=["Pankaj","Kumar"] ;

    for( var i=0;i<name.length;i++)
    {
        console.log("Hello "+name[i]);
    }
})();
Run Code Online (Sandbox Code Playgroud)