1 var x = 1; 2 if(function f(){},x=f){ 3 } 4 console.log(x);
为什么在执行if语句的时候,会报f is not defined的错误.
逗号操作符影响到了,所以在if中被执行到的只是x= f
逗号运算符从左向右都会执行的
1 var x = 1; 2 if(f = function (){}, x = f){} 3 console.log(x);
这样写就不报错了,具体原因我也说不清楚,我只是了解这两种声明方式是有一些差别的。