一.Javascript的數據類型
(1)基本類型:
undefined :指的是,使用var聲明變量但未對其加以初始化, var meddling,對未初始化的變量執行typeof操作符會返回undefined,而對未聲明的變量執行typeof操作符同樣也會返回undefined
null :typeof操作符會返回object,只要保存對象的變量還沒有真正保存對象,就應該明確的讓該變量保存null值。
Boolean:該類型有倆個字面值:true ,false 大小寫區分
Number :有一個NaN,非數值,是一個特殊的數值 ,這個值用于表示一個本來要返回數值的操作數而未返回數值的情況(這樣就不會拋出錯誤了)NaN的特點:任何涉及它的操作都會返回NaN;NaN與任何值都不相等(包括自身自己NaN)。
String
(2)引用類型:由多個值構成的對象
Object:object的每個實例都具有下列屬性和方法:
constructor:保存著用于創建當前對象的函數;
hasOwnProperty(“propertyName”):用于檢查給定的屬性在當前實例(而不是在實例的原型中)是否存在。
isPrototypeOf(object):用于檢查傳入的對象是否是傳入對象的原型
toString():返回對象的字符串表示
valueOf():返回對象的字符串,數值或布爾值表示
二.Js中對象的存儲問題:
兩中類型的特點:
(1)基本類型在內存中占據固定大小的空間,因此被保存在棧內存中。
(2)從一個變量向另一個變量復制基本類型的值,會創建這個值的一個副本
(3)引用類型的值是對像,保存在堆內存中,引用類型的值是引用訪問的
(4)包含引用類型的值的變量實際上包含的并不是對象本身,而是一個指向該對象的指針
(5)從一個變量向另一個變量復制引用類型的值,復制的其實是指針,因此兩個變量最終都指向同一個對象。
(6)用typeof操作符來確定是哪種基本類型,typeof是一個操作符,而不是一個函數,因此typeof后面的圓括號可有可無,用instanceof操作符來確定是哪種引用類型。
棧的優勢就是存取速度比堆要快,僅次于直接位于CPU中的寄存器,但缺點是,存在棧中的數據大小與生存期必須是確定的,缺乏靈活性。堆的優勢是可以動態地分配內存大小,生存期也不必事先告訴編譯器,垃圾收集器會自動地收走這些不再使用的數據,但是缺點是由于在運行時動態分配內存,所以存取速度較慢。
而對于js簡單數據類型而言,他們占用內存比較小,如果放在堆中,查找會浪費很多時間,而把堆中的數據放入棧中也會影響棧的效率。比如對象和數組是可以無限拓展的,正好放在可以動態分配大小的堆中。
三. Js中內存管理:
主要問題是:分配給web瀏覽器的可用內存數量通常要比分配給桌面應用程序的少,目的是防止運行js的網頁耗盡全部系統內存而導致系統崩潰。
Js是一門具有自動垃圾收集機制的編程語言。
Js的垃圾回收機制內容:
(1)離開作用域的值將被自動標記為可以回收,(比如局部變量,在運行完之后,就被自動標記,閉包的時候,屬于特殊情況),因此將在垃圾收集期間被刪除。
(2)“標記清除”是目前主流的垃圾收集算法,這種算法的思想是給當前不適用的值加上標記,然后在回收其內存。一般這些都是用在全局變量上。
(3)“引用計數”,另一種垃圾收集算法,這種算法的思想是,跟蹤記錄所有值被引用的次數,該算法在當前的搜索引擎中都不在使用
創新互聯www.cdcxhl.cn,專業提供香港、美國云服務器,動態BGP最優骨干路由自動選擇,持續穩定高效的網絡助力業務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節活動現已開啟,新人活動云服務器買多久送多久。
網站題目:js數據類型,及內存存儲學習筆記-創新互聯
網站路徑:http://m.2m8n56k.cn/article34/dsigpe.html
成都網站建設公司_創新互聯,為您提供網站改版、網站內鏈、小程序開發、搜索引擎優化、用戶體驗、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯