javascript變數、範圍和記憶體問題

來源:互聯網
上載者:User

標籤:儲存   number   傳遞   div   分享   .com   logs   regexp   obj   

一.基本類型(傳值後兩者不互相影響)

5種:Undefined、Boolean、Null、Number、String

基本類型的賦值是傳遞該值得副本。兩者可以參與任何操作而不受影響。

二.參考型別(傳值後兩者會互相影響)

指可由多個值構成的對象

變數為參考型別的變數,其儲存的是指向存在記憶體(堆)中的參考型別的指標的值

傳值為傳指標的值的副本,最終兩者指向的是記憶體中同一個位置,兩者會互相影響。

三.傳遞參數

1.傳遞的參數為基本類型:

被傳遞的值會被複製給一個局部變數。(參數屬於arguments對象中的一個元素)

2.傳遞的參數為參考型別:

會把這個值在記憶體中的地址複製給一個局部變數,因此局部變數的變化會反映在函數外部。

function addTen(num){    num += 10;    return num;}var count = 10;var result = addTen(count);//傳基本類型,為傳副本,兩者互不影響console.log(count);//10console.log(result);//20

四.檢測類型

1.typeof操作符是確定一個變數是字串、數值、布爾值、還是undefined的最佳工具(確定基本類型的種類)

2.instanceof是確定參考型別是Object、Array、RegExp的最佳工具

五.執行環境及範圍

內部環境可以通過範圍鏈訪問所有的外部環境,但是外部環境不能訪問內部環境中的任何變數和函數。每個環境可以向上搜尋範圍鏈,以查詢變數和函數名。

javascript變數、範圍和記憶體問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.