JS global var未定义

时间:2017-12-15 09:33:47

标签: javascript

我有2个js文件,test1.js和test2.js 他们像这样加载:

<script src="test1.js"></script>
<script src="test2.js"></script>

test1.js我有一个全局var var myVar = []; 我尝试在test2.js中读取此var,但我收到未定义的错误

可能会导致此行为,因为它是全局变种。

2 个答案:

答案 0 :(得分:3)

常见的错误是您的代码是否在页面就绪功能中 例如jquery document ready $(document).ready()

$(document).ready(function() {
    foo = '';
    // more code...
    // more functions...
});

如果是这种情况,您的var不是全局的,您将无法在test2.js中看到您的var JavaScript具有功能级变量范围。 没有其他情况我可以想到这可能会发生。全局变量在您描述的场景中可见。

所以只需在外面声明你的var。初始myvar是这样的:

var myVar = [];

在一切之上。

答案 1 :(得分:-2)

也许它是你如何调用变量。试试这个:

<小时/> HTML文件(记住脚本顺序,首先调用var,然后使用它):

<script src="test1.js"></script>
<script src="test2.js"></script>

test1.js:

var myVar = [];

test2.js:

console.log(myVar);

在test2.js中,您还可以尝试window

console.log(window.myVar);

或者,如果它在全球范围内,请使用this

console.log(this.myVar);