js中局部变量只对局部的函数起作用,执行完该函数自动删除局部变量,但这段代码中第二个函数里面变量sum的值和第一个sum值是一样的,这是怎么回事儿呢?不应该是0么?
<html>
<head>
<title>全部变量和局部变量再探</title>
</head>
<body>
<button onclick="myFunction()">局部变量</button>
<br><br>
<button onclick="myFunctions()">局部变量</button>
<script>
var sum=0;
function myFunction(){
var str1=123;
var str2=345;
sum=str1+str2;
alert(sum);//值为468
}
function myFunctions(){
alert(sum);//值为468
}
alert(sum);//值为0
</script>
</body>
</html>
上面是答案,道理如下: