js面试题总结

1、预编译

<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> 

 

posted @ 2019-07-22 09:46  大哥成  阅读(241)  评论(0编辑  收藏  举报