我在Javascript中有类似于以下代码:
// Page1.vue
<template>
<div>
<h1>Page 1</h1>
</div>
</template>
<style scoped>
// with the `scoped` attribute, these rules will only apply to this component
h1 {
color: red;
}
</style>
显然我的这个程序的输出是一行带有2,但是如果我将其中一个for循环的索引名称从i更改为ii,那么它会起作用。
在javascript中预期的行为是func1中for循环中的i在第一次调用func2后实际上变为100吗?
如果这是真的,有没有办法解决这个问题,而不是以不同的方式命名每个索引?当嵌套了很多函数调用时,这非常烦人。
答案 0 :(得分:2)
你需要这样做,
func1() {
for(var i = 2; i < 5; i ++) { // define i here
console.log(i);
func2(i);
}
}
func2(x) {
for(var i = 100; i < 200; i ++) { // define i here
do something
}
}
如果你声明为全局,那么它将具有最近的值,因此你需要为每个函数提供唯一的值,你应该在函数中声明