淺析JS原始值和引用值問題

原始值->基本類型

Number String Boolean undefined null

存儲在棧(stack)中的簡單數據段,也就是說,它們的值直接存儲在變量訪問的位置

動態語言->腳本語言->解釋型語言->弱類型語言

靜態語言->編譯型語言->強類型語言

null 空值 初始化組件 函數 銷毀函數 占位

引用值

object array function date RegExp

如果一個值是引用類型的,那麼它的存儲空間將從堆中分配。由於引用值的大小會改變,所以不能把它放在棧中,否則會降低變量查尋的速度。相反,放在變量的棧空間中的值是該對象存儲在堆中的地址。地址的大小是固定的,所以把它存儲在棧中對變量性能無任何負面影響。
ex

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>D1</title>
</head>
<body>
    <script type="text/javascript">
        var arr1 = [1,2,3,4];
        var arr2 = arr1;
        //arr1.push(5);//此時打印arr2為1,2,3,4,5
        arr1 = [1,2];//重新賦值不會影響arr2
        document.write(arr2);
    </script>
</body>
</html>

到此這篇關於JS原始值和引用值 的文章就介紹到這瞭,更多相關JS原始值和引用值 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: