1. 程式人生 > >JS預編譯面試題 其一

JS預編譯面試題 其一

<script>  
   var x = 1, y = z = 0;  
   function add(n) {  
       n = n+1;  
  }  
   y = add(x);  //2
     
   function add(n) {  
      n = n + 3;  
   }  
   z = add(x);  //
   //問執行完畢後 x, y, z 的值分別是多少? 
   //x     1
   //y 		undefined
  // z 		undefined
  //函式表示式沒有return 所以為undefined
</script> 
<script>  
   var x = 1, y = z = 0;  
   function add(n) {  
      return n = n+1;  
  }  
  
   y = add(x);  
     
   function add(n) {  
      return n = n + 3;  
   }  
  
   z = add(x);  
   console.log(x,y,z)
   //問執行完畢後 x, y, z 的值分別是多少? 
   //錯誤:
   //x     1
   //y 	   2
   //z     4
   //正確:
   //x     1
   //y 	   4
   //z     4
   //當函式宣告重名時後面的會覆蓋前面的
</script>