Chrome中的Javascript分割功能会产生意外结果

Set*_*ath 4 javascript

这是一段代码

str = "a,b,c";
name = str.split(",");
Run Code Online (Sandbox Code Playgroud)

name变量显示为在Firefox中"对象"类型,这是为什么发生的镀铬"字符串"类型?这是jsfiddle http://jsfiddle.net/XujYT/17/

name变量还存储值 "a,b,c"而不是chrome http://jsfiddle.net/XujYT/23/中的split数组

Dav*_*ing 14

因为name是chrome使用的全局变量,所以无法在没有意外结果的情况下覆盖它.尝试:

var name = str.split(","); // always use var for local variables!
Run Code Online (Sandbox Code Playgroud)

  • @Sethunath全局`name`变量并不意味着被操纵,并且它的行为不像常规变量.F.ex,如果你为它赋值,它会将该值计算为`toString()`,因此`name = {}`将计算为``[object Object]"`. (2认同)