JavaScript變數有9種類型:1、string型別;2、number型別;3、boolean型別;4、null型別;5、undefined型別;6、Object型別;7、Array型別;8、 Function類型;9、Symbol類型。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
值類型:字串(string)、數值(number)、布林值(boolean)、null、undefined
引用類型:物件(Object)、陣列(Array)、函數(Function)
#ES6 引入了新的原始資料類型:Symbol,表示獨一無二的值。
佔用空間固定,保存在堆疊中(當一個方法執行時,每個方法都會建立自己的記憶體棧,在這個方法內定義的變數將會逐一放入這塊棧記憶體裡,隨著方法的執行結束,這個方法的內存棧也將自然銷毀了。因此,所有在方法中定義的變量都是放在棧內存中的;棧中存儲的是基礎變量以及一些對象的引用變量,基礎變量的值是儲存在堆疊中,而引用變數儲存在堆疊中的是指向堆疊中的陣列或物件的位址,這就是為何修改參考類型總是會影響到其他指向這個位址的參考變數。
儲存與複製的是值本身
使用typeof偵測資料的型別
基本型別資料是值類型
#佔用空間不固定,保存在堆中(當我們在程式中建立一個物件時,這個物件將被保存到運行時資料區中,以便重複利用(因為物件的建立成本通常較大),這個運行時資料區就是堆記憶體。堆記憶體中的物件不會隨方法的結束而銷毀,即使方法結束後,這個物件還可能被另一個引用變數所引用(方法的參數傳遞時很常見),則這個物件仍然不會被銷毀,只有當一個物件沒有任何引用變數引用它時,系統的垃圾回收機制才會在核實的時候回收它。
保存與複製的是指向物件的一個指標
使用instanceof偵測資料型別
使用new()方法建構出的物件是引用型
// 值类型:Number、string、bollean、undefined var a = 100 var b = a a = 200 console.log(b) // 100 // 引用类型:对象、数组、函数、null(空指针) // 可以扩展属性 var a = {age:20} var b = a b.age = 21 console.log(a.age) // 21 typeof undefined // undefined typeof 'abc' // string typeof 123 // number typeof true // boolean // typeof 区分不出来引用类型(除了函数) typeof {} // object typeof [] // object typeof null // object typeof console.log //function
【推薦學習:javascript進階教學】
以上是JavaScript變數有幾種類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!