这是我当前使用javascript编写的代码,我的问题是,当我单击下一步按钮时,我能够在函数内部获取temp_x值,但无法在外部获取temp_x值。请帮我解决我做错的地方。 我想在[{“ x”:temp_x}]
中获得temp_x<script type="text/javascript">
data = ["09:15:44.158162924", "09:15:44.244061560", "09:15:44.296753930"]
let temp_x = [];
var Current = 0;
function Next(){
if(Current == data.length - 1){
Current = 0;
}
else {
temp_x.push(data[Current]);
Current++;
}
}
<div>
<button onclick="Next();">Next!</button>
</div>
</script>
<script type="text/javascript">
[{ "x": temp_x, "xaxis": "x", "y": ydata, "yaxis": "y"}]
</script>
答案 0 :(得分:2)
这是因为您试图在不同的执行上下文中使用该变量。
{<script></script
这样的每个块都会创建自己的执行上下文,而您正在使用let
来分配一个变量,该变量存在于作用域内部,而在其作用域之外无法使用。
使用var
代替let
var temp_x = [];
var Current = 0;
var 声明是全局范围或函数范围,而 let 和 const 是块范围。可以在其范围内更新和重新声明 var 变量; let 变量可以更新,但不能重新声明; const变量既不能更新也不能重新声明