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>