js真是处处危机,大家要处处小心啊

先上一段代码,大家看看。

 forvar i=0;i<3;i++){

   if (i=2){
     alert("我的值为2"); 
   }
   else{
     alert("我的值为:"+i); 
   } 
}  

 这段代码执行后,大家认为该跳出几个对话框呢。有人说:“3个呗”。如果你也这样认为,那你可真就不够仔细了。你要看清楚了,那句“i=2”,不是“i==2”。

其实正确的答案是:这句代码将会进入死循环,不信试试,哈哈。

原因是什么呢,个人理解认为:在js中只要遇到“parameter=value”的时候,就是赋值,不管你在什么时候。即使是在if条件中。

“if(i=2)”在其他一些语言中会报编译错误的,但是JS不会,所以大家一定要小心啊。

原文地址:https://www.cnblogs.com/acles/p/2426732.html