Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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_Node.js_Reactjs - Fatal编程技术网

JavaScript编译序列在这段代码中是如何工作的?

JavaScript编译序列在这段代码中是如何工作的?,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,为什么要将错误代码行放在底部,运行程序的其余部分。但是把它放在这里不会运行任何函数,会导致错误 const A = "A"; let F; function doStuff(B) { console.log(B); const C = "C"; let H = "H"; if (1 + 1 === 2) { const D = "D"; H = "something els

为什么要将错误代码行放在底部,运行程序的其余部分。但是把它放在这里不会运行任何函数,会导致错误

const A = "A";
let F;

function doStuff(B) {
  console.log(B);
  const C = "C";
  let H = "H";
  if (1 + 1 === 2) {
    const D = "D";
    H = "something else";
  }

  console.log(H);
  F = "F";
}

console.log(B); // I know it has error

let E = 0;
while (E < 3) {
  E++;
  console.log(A); //But why this
}
doStuff("B"); // and this
console.log(E); // and this is not working unless I remove that line or place that in the bottom of the code.
const A=“A”;
让F;
函数doStuff(B){
控制台日志(B);
常数C=“C”;
设H=“H”;
如果(1+1==2){
const D=“D”;
H=“其他东西”;
}
控制台日志(H);
F=“F”;
}
控制台日志(B);//我知道它有错误
设E=0;
而(E<3){
E++;
console.log(A);//但为什么会这样
}
多斯塔夫(“B”);//还有这个
console.log(E);//除非我删除那一行或者把它放在代码的底部,否则这是行不通的。

变量B没有在任何地方定义,因此它当然会对您大喊大叫

const A=“A”;
让F;
函数doStuff(B){
控制台日志(B);
常数C=“C”;
设H=“H”;
如果(1+1==2){
const D=“D”;
H=“其他东西”;
}
控制台日志(H);
F=“F”;
}

//控制台日志(B);我知道它有错误,然后修复它,因为这是问题。听起来你需要研究Javascript范围。我知道B没有定义,编译器因此显示错误,甚至不打印其他内容。但如果我把这一行放在代码的末尾,它会打印其他内容,然后显示错误。为什么?<代码>常量A。。。。设E=0;而(E<3){E++;console.log(A);//现在它工作了}doStuff(“B”);//这也是console.log(E);//和这个控制台。log(B);//正如上一篇
中所述,为什么将其放在底部,部分运行程序,而将其放在上面则不行?JSF中是否有特定的编译顺序?您是否将代码粘贴到chrome devtool中执行?我在VS代码和一些在线编译器中运行它。如果我按照问题
ReferenceError:B未定义的要求放置行
这是输出。如果我把这行放在底部
ab其他3个参考错误:B未定义
这些是输出。为什么它会执行其他事情,然后显示错误,而不是上面所有的内容。