1. 程式人生 > 其它 >JS原始值和引用值

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>