javascript str.split(":")" Uncaught ReferenceError:未定义数组#34;

时间:2014-03-27 17:46:38

标签: javascript split

当运行以下代码时,我得到“Uncaught ReferenceError:myArray is not defined”

this.GetClass  = function(klass) {
  $.each(jsonArray, function(i,val){
    var classes = val.class;
    myArray = classes.split(":")    
  });
}

请发表评论

3 个答案:

答案 0 :(得分:3)

我将假设您的文件以'use strict;'开头 - 您正在强制javascript进入严格模式。在这种情况下,您可以删除该行,或更改

myArray = classes.split(":")  

window.myArray = classes.split(":");

强制它进入全局范围。或者在需要的范围内定义它,最有可能在该功能之外,以便随时随地使用它。

答案 1 :(得分:1)

您正在使用严格模式。因此,您必须说var或将其附加到对象。

换句话说myArray未定义。

http://jsfiddle.net/kimiliini/dR7za/

在非严格模式下,变量将被提升到全局空间,这是人们通常不想要的。

答案 2 :(得分:0)

如前所述,您很可能处于严格模式并尝试分配给未声明的变量。

由于没有理由以这种方式创建全局变量(在循环中),我假设您忘记添加var

var myArray = ...;