前面有介绍到变数的部分,细分的话,主要有分全域变数和区域变数,以下来举例说明:
function count(Num){ var total = Num * 5;}console.log(total);
若此时在 console 输出,会出现错误
这是因为,我们虽然有宣告变数 total ,但是是在 function 内,作用域也只在 fucntion 内,这就是所谓的区域变数
若今天改变一下 total 变数的位置,如下:
var total;function count(Num){ alert(hi);}console.log(total);
此时输出会是 undefinded 因为我们宣告了 total 变数,却还未赋予值
而 total 会被视为全域变数,因为它的作用域就不只被侷限在 function 内,而是全部的作用域
而之所以会有全域变数跟区域变数区别外,除了作用域的不同,跟记忆体也有关
当我们变数宣告在 function 内为区域变数,我们呼叫 function 时,此时变数才会被建立佔用记忆体,而当 function 执行完毕时,就会被删除,记忆体空间也会被释放
反之,全域变数是只要宣告之后就会佔用记忆体空间,而佔用记忆体空间会影响到使用者的电脑效能问题,所以当我们在宣告变数时,要思考这个变数的作用,是可以放在全域,还是宣告在 function 内即可。