代码如下,请问为什么最后两个console得到的是4和4

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>全局变量的用法</title>

<script type="text/javaScript">

window.onload = function(){

function fn1(){

var a = b = 2;

console.log(a);

console.log(b);

}

fn1();

console.log(b);

function fn2(n){

a = n;

console.log(a);

}

fn2(4);

console.log(a);

}

</script>

</head>

<body>

</body>

</html>


热爱生活_热爱编程
浏览 624回答 1
1回答

pardon110

在js中通常没有声明的变量,js解释器自动默认是全局变量。你fn2函数中临时变量a在函数作用域内没有声明,一旦该函数被调用,相当于声明了一个全局变量a,该变量会直到脚本页面执行完毕才释放。而fn1函数内声明变量var a 是一个局部变量,临时的,它的存活期,在fn1调用完毕就结束了。所以后面两个都是4.
打开App,查看更多内容
随时随地看视频慕课网APP