js 變數以及函式傳參

2022-02-15 06:20:03 字數 933 閱讀 5854

一、變數:

如下:

1     let num=1

;2 let num1=num;

3 num=num+2

;4 console.log(num,num1);

輸出:

1     let obj={};

2 let obj1=obj;

3 obj.name='

tom'

;4 console.log(obj,obj1);

輸出:

總結:基本型別在賦值新的變數的時候,是重新建立乙個值給新的變數空間,舊的變數和新的變數互不影響。

引用型別的,在賦值新的變數,是將物件在堆中的記憶體指標賦值給新的變數空間,在改變乙個變數的屬性,直接影響另乙個變數,也就是說他們指向的是同乙個物件。

二、函式傳參

無論是基本型別還是引用型別在函式傳參都是按值傳參。

也許大家都會有疑惑為什麼變數要基本型別和引用型別 乙個按值 乙個按引用?

1     test=(num)=>;

5 let testval=2;6

test(testval);

7 console.log(testval);//2

1    testobj=(obj)=>;

6 let testmyobj=;

7testobj(testmyobj);

8 console.log(testmyobj.name);//jack

引用型別傳遞是物件的記憶體位址,而不是引用,如果是引用那麼在函式testobj 在函式作用域中的區域性變數obj在改變引用的時候,函式外層的testmyobj輸出的name值應該是evil,而不是jack 所以顯然傳遞的值即物件在堆中的記憶體位址。

js函式傳參

要理解函式的傳參機制,首先,我們首先就要弄清楚的就是js資料型別的儲存機制和變數複製的方式,上文中 js中為什麼不能為值型別的變數動態新增屬性呢?這裡已經討論過了,這裡不再累贅,接著我們來討論下,js的變數複製 請看以下 在看 從上面 的輸出結果,我們可以看出,對於基本型別來說,其複製的是被複製變數...

js函式動態傳參

function box alert box 1,2,3,4,5,6 傳遞引數 arguments物件的length屬性可以得到引數的數量。function box alert box 1,2,3,4,5,6 我們可以利用length這個屬性,來智慧型的判斷有多少引數,然後把引數進行合理的應用。比如...

JS函式傳參 作用域

一 函式傳參 引數 js資料型別 數字 字串 布林 函式 物件 未定義 fn1 100 function fn1 a 應用 重寫 1.盡量保證html 一致,可以通過父級選取元素 2.把核心朱程式實現,用函式包起來 3.把每組不通知找出來,通過傳參實現 數量正在載入中 文字說明正在載入中 數量正在載...