所有函式的引數都是按值傳遞的。也就是說,把函式外部的值複製給函式內部的引數,就和把值從乙個變數複製到另乙個變數一樣。
基本型別值的傳遞如同基本型別變數的賦值一樣。
而引用型別值的傳遞,則如同引用型別變數的賦值一樣。
不少人困惑,因為變數有按值和按引用兩種方式,而引數只能按值傳遞。
在向引數傳遞基本型別和引用型別時都會複製乙份。
//傳遞了形參
var a = [1, 2, 3];
var b = [5, 6];
function
change(a,b) ;
change(a,b);
console.log(a,b);
//"4,2,3" //"5,6"
//沒有傳遞形參
var a = [1, 2, 3];
var b = [5, 6];
function
change() ;
change();
console.log(a,b);
//"5,6" //"4,2,3"
functiontest(i)
test(10);
var a = 100;function
test()
test();
對於區域性變數 64位函式引數與區域性變數
在之前的文章中,我們已經簡單的了解了64位的一些引數的知識,下面我們從不同的情況對64位的堆疊與函式做詳細的講解。首先,對於64位的函式,他的引數並不都是以push壓棧的方式進行傳遞的,他的前4個引數分別通過rcx,rdx,r8,r9這幾個暫存器進行傳遞 如圖 從圖中的函式可以發現,64位的函式是不...
js區域性變數 全域性變數
在js中如果用var來定義乙個變數,如果該變數被定義在function或者其他迴圈體內,則變數為區域性變數,並且該變數不會受到同名全域性變數的影響,也不會影響同名的全域性變數。如果不用var來定義變數而直接拿乙個變數來使用則該變數會被自己定義為全域性變數,無論該變數被定義在任何位置,如果在funct...
JS 關於用區域性變數
1.全域性變數不好用 互相覆蓋來覆蓋去 2.所以用區域性變數 要用區域性變數必須有乙個函式 3.立即執行函式 所以宣告乙個函式,立即呼叫它。我們只是為了用區域性變數 function call 4.提示語法錯誤,怎麼破 1.最外層加括號 function call 2.只把匿名函式括起來 funct...