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>  


猜你喜欢

转载自blog.csdn.net/t1753867136/article/details/80226726