function t(flag){
if(flag){
s="ifscope";
for(var i=0;i<2;i++);
}
console.log(i);
}
t(true);
console.log(s);
不太理解这段代码什么意思。
为什么加上t(true);后,最后一句就可以执行了?不加的话,就会报错?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
变量s前面没有var,为全局变量
题主可以试着看一下控制台console的英文报错

首先要明确,在未声明变量时,想要打印出变量的值是会报错的。
其次,要明白执行
t(true)后会声明一个全局变量s,值为ifscore。我想这样就能明白,加上
t(true)不会报错,而不加会报s is not defined(…)的错误了应该在控制台里看下报的什么错,一般都能找到原因的,错误类型很多,一般会错误信息会指向出错的那一行代码,在这里就是变量没声明