題目javascript
javascript的數據類型分爲兩類: 原始類型 和對象類型(又基本類型和引用類型)java
原始類型包括:
String, Boolean, Number, null, undefined
(null
和undefined
是兩個特殊的原始值,表明了各自特殊類型的惟一成員)segmentfault
對象是屬性和方法的集合,每一個屬性都由「名/值對」構成。全局對象是比較特殊的對象。
對象類型包括:普通對象(「命名值」的無序集合),特殊對象-數組(帶編號值的有序集合),函數。數組基本數據類型是按值訪問的,由於能夠操做保存在變量中的實際值。
引用類型的值是保存在內存中的對象。JS不容許直接訪問內存中的位置,也就是說不能直接操做對象的內存空間。在操做對象時,其實是在操做對象的引用而不是實際的對象,爲此,應用類型的值是按照引用訪問的。函數
var a = {"x": 1}; //對象是引用類型,這裏把對象{"x": 1}的引用地址賦值給變量a var b = a; //把a所引用的對象地址賦值給b,此時a和b指向同一個對象 a.x = 2; //把a所指向對象的屬性x設置爲2,此時該對象爲{"x": 2} b.x; //因爲a和b指向同一個對象,因此b.x = a.x = 2 a = {"x":3}; //這裏從新對a進行賦值,把一個新對象{"x": 3}的引用地址賦值給變量a, //此時a指向這個新對象{"x": 3},而b仍然指向原來的對象{"x": 2} console.log(b.x); //這裏輸出2就瓜熟蒂落了