1. 程式人生 > >11.1 js中級,資料型別、資料儲存方式、作用域記憶體空間的區別以及例識別。

11.1 js中級,資料型別、資料儲存方式、作用域記憶體空間的區別以及例識別。

一. 基本資料型別引用資料型別的區別。

    1.基本資料型別:基本資料型別就是簡單的操作值。

    2.引用資料型別:就是把引用的地址賦給變數。

  堆記憶體:

    就是存放程式碼塊的,存放形式有兩種

      1)物件以鍵值對的形式存放

      2)引用資料型別的賦值,是把引用的地址賦給他,在修改屬性的時候,通過地址查詢然後修改。

  引用資料型別如何操作?

    先通過引用地址去查詢堆記憶體中的程式碼,然後再去修改

 

二.  資料儲存的方式:

            1.string ···· " "

            2.array    ···· [ ]

            3.json   ···· { }

三.作用域記憶體空間的區別:

  作用域是函式在執行的時候產生的fn()

    函式在執行的時候首先會開闢一個新的記憶體空間叫棧記憶體(環境或作用域)

    資料型別在賦值的時候回開闢一個新的記憶體空間 叫堆記憶體(存放程式碼塊的)

      相同點:二者都會形成一個記憶體地址 

 

函式的封裝:

      優勢可以批量生產,減少冗餘程式碼,提高程式碼的重複利用率(高密度低耦合),沒有繼承和多型

四.例識別

    建構函式中的屬性都是私有的,各個例項物件之間沒有私有屬性。為了例項物件擁有公共屬性,所以js使用prototype(原型)這個屬性,屬性值是一個物件,我們可以把公共的屬性放在prototype上。

    原型分析:

      1.每個函式資料型別(普通函式,類)都有一個prototype,並且這個屬性是一個物件屬性。

      2.每個prototype上都有一個construction屬性,並且這個屬性值是當前函式或者類本身。

      3.每個物件資料型別(例項,普通物件,prototype) 都天生具有一個__proto__的屬性值,他的屬性值是當前例項所屬類的原型。

    原型鏈:

      duixiang.shuxing的時候,首先這個屬性不是私有的,私有的就直接使用,如果私有的屬性沒有,就找共有的,共有的有就使用,沒有的就按照__proto__的類上有沒有,直到找到基類Object。如果Object沒有就undefined,這種查詢機制叫做原型鏈。