事情起因是因為看到了這段**
var n=1,m=2;
function fn(){
var n=3
m=4console.log(n);
console.log(m);
fn();
console.log(n);
console.log(m);
本身在作用域方面搞得就有點蒙,自己算出來的結果是3,2,1,2;但是列印出來的是3,4,1,4;
自己是蒙在了函式裡面如果不用var 那麼這個宣告應該就不存在;需要去上一級鏈上去找,結果忘記了函式裡面不用var 宣告是全域性變數;而用var 宣告的是區域性變數,只能在函式內部使用。
如果列印順序換換
fn();
console.log(n);
console.log(m);
這樣的**換成:
console.log(n);
console.log(m);
fn();
那麼列印出來的就是1,2,3,4
區域性變數與全域性變數
根據c語言的說法,區域性變數 定義在方法內部的變數叫區域性變數 全域性變數 定義在方法外部的變數叫全域性變數。區域性變數和全域性變數的主要區別在於二者的生存週期不同。全域性變數的生存週期 靜態分配記憶體,程式執行期間常駐記憶體,直到程式執行結束。區域性變數的生存週期 動態分配記憶體,位於執行緒堆疊中...
全域性變數與區域性變數
區域性變數 在區域性 塊內定義 作用域在區域性 塊內,生命週期在區域性 塊內,結束時銷毀。include void test int main return 0 輸出 1111111111 全域性變數 在所有 塊外定義 作用域是整個工程,生命週期程式開始至結束。工程test 10 10 原始檔sum...
區域性變數與全域性變數
資料的儲存型別 一 變數的作用域 變數的作用域是指變數有效性的範圍,與變數定義的位置密切相關,作用域是從空間這個角度來描述變數的,按照作用域的不同,變數可分為區域性變數和全域性變數。1 區域性變數 在函式 或 塊 內部定義的變數,也稱為內部變數,區域性變數只能在定義它的函式 或 塊 內使用,其他函式...