Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数循环变量_Javascript_Function_Loops - Fatal编程技术网

Javascript函数循环变量

Javascript函数循环变量,javascript,function,loops,Javascript,Function,Loops,var i=99; 虽然是真的 { 功能线垫片 { 返回文件中的i++行代码+i++him+i-1+行代码+!; } console.loglinesJohn删除一个,清除所有内容;; i-=1; 如果i==0 { 打破 } } 首先,我建议您使用正确的迭代结构。如何决定哪一个适合您: 如果您知道将要进行的迭代次数,我更喜欢使用for循环。 若你们有一个数组作为输入,你们可以使用foreach迭代器,但我更喜欢for循环。 如果必须迭代直到满足一个条件,那么while是正确的结构。 最后,若你们

var i=99; 虽然是真的 { 功能线垫片 { 返回文件中的i++行代码+i++him+i-1+行代码+!; } console.loglinesJohn删除一个,清除所有内容;; i-=1; 如果i==0 { 打破 }
} 首先,我建议您使用正确的迭代结构。如何决定哪一个适合您:

如果您知道将要进行的迭代次数,我更喜欢使用for循环。 若你们有一个数组作为输入,你们可以使用foreach迭代器,但我更喜欢for循环。 如果必须迭代直到满足一个条件,那么while是正确的结构。 最后,若你们需要做一件事,然后迭代,那个么结构就是你们需要的。 在本例中,您已经知道要进行多少次迭代,因此我将使用for循环:

for (let i = 0; i < 99; i++) {
    console.log(i + " " + "lines of code in the file " + i + " " + him + i-1 + "lines of code" + "!");
}
另外,请记住,在您的示例中,您要传递函数声明行99次,应该避免在循环结构之外声明函数

还有一件事,在实际的代码中,您应该始终尽可能保持代码的可读性,这是一种难以理解的任务。

var i=99; 功能线垫片 { 返回文件中的i+行代码+i++him+-i+行代码!; } 虽然是真的 { console.loglinesJohn删除一个,清除所有内容; 如果!我 { 打破 }
} 问题是您正在构建一个字符串,但尝试从字符串中减去一个。与加法不同,减法必须产生一个数字,但string-1不是一个数字

修复结构的一种方法是将i-1放在括号中,这样可以像下面这样单独计算:

i + " " + "lines of code in the file " + i + " " + him + (i-1) + "lines of code" + "!"
但更好的语法是使用反勾号以更可读的方式格式化它。试试这个:

`${i} lines of code in the file ${i} ${him+(i-1)} lines of code!`
我不太确定这句话的结构,但这就是你想做的。在${}段中使用带计算的反勾号比添加字符串更容易阅读和理解

为了进一步解释出错的原因,请尝试运行以下代码段:

让i=99 让x=你好 console.logi-1,i-1//工作,因为i是一个数字 console.logx-1,x-1//n从字符串中减去 console.logx+i-1,x+i-1//仍然为NaN,因为x+i是字符串
console.logx+i-1,x+i-1//可以工作,因为i-1被添加到string中。我想你应该把他+i-1放在括号中。+him+i-1+->+him+i-1+@VLAZ可能更好。我不明白代码应该做什么。isNaNstring-1===true所有直到-都被强制为字符串并连接。@FlatAssembler它应该打印字符串him,然后在后面跟着数字I-1,例如,对于I=9,它应该打印8。但是由于没有括号,整个表达式在文件+i++him+i中计算为i++代码行,它生成一个字符串->减去1,它生成NaN:这是一个从字符串中减去的数字->连接代码行+!