zoukankan      html  css  js  c++  java
  • 面试题

    1 <script>
    2  for(var i=0;i<10;i++){
    3  setTimeout(function(){ alert(i); },1000);
    4  } 
    5 </script>

    释:

    setTimeout是一次执行函数,这里是1秒后执行,仅仅执行一次;for(var i=0;i<10;i++),i的每次取值都是执行setTimeout这个函数,并没有执行setTimeout里面的function(即闭包函数),setTimeout里面的function是有setTimeout的定时触动的,也就是1秒后执行,也就是说i从0~9时,一共执行了10次的setTimeout()函数,此时的i的值是10,由于for语句的执行速度远小于1秒,所以,1秒后,由setTimeout()函数定时触动的闭包函数function()开始执行,alert(i);i的值已经是10了,所以相继打印10次i.

    区别于(闭包):

    1 <script>
    2         for(var i=0;i<10;i++){    
    3             (function(i){
    4             setTimeout(function(){
    5                 alert(i);
    6             },1000);    
    7             })(i)
    8         }
    9     </script>
  • 相关阅读:
    HDU1864--01背包
    HDU4508--完全背包
    HDU5410--01背包+完全背包
    HDU1284--完全背包
    HDU1248--完全背包
    HDU2191--多重背包(二进制分解+01背包)
    HDU2186--水
    PAT乙级--1003
    51Nod--1006 lcs
    51Nod--1008
  • 原文地址:https://www.cnblogs.com/thelongmarch/p/7651430.html
Copyright © 2011-2022 走看看