面向對象精要-類型

原始類型和引用類型

原始類型

  • 5種基本類型
    • number
    • string
    • boolean
    • null
    • undefined
  • 原始類型的值互不影響。
var color1 = 'red';
    var color2 = color1;

    console.log(color1) //red
    console.log(color2) //red

    color2 = 'blue'

    console.log(color1) //red
    console.log(color2) //blue
複製代碼
  • 能夠看出來原始類型的值互不影響,當color2改變值的時候,color1的值沒有改變。
  • 鑑別原始類型
console.log(typeof 'red')   //string
   console.log(typeof 123)     //number
   console.log(typeof true)    //boolean
   console.log(typeof undefined) //undefined
   console.log(typeof null)    //object
複製代碼
  • 只有null的類型爲object,並非null。
  • 判斷一個值是否爲空的最好辦法:和null比較,注意使用三個=號
console.log(value === null) //true or false
複製代碼

引用類型

  • 建立對象
var obj = new Object()
複製代碼
  • 將一個對象賦值給一個變量的時候,再將這個變量賦值給另一個變量的時候,這兩個變量是同一個指針。
var obj1 = new Object()
    obj.name = 'aaa';
    var obj2 = obj1;
    
    console.log(obj1.name)  //aaa
    console.log(obj2.name)  //aaa

    obj2.name = 'bbb'
    console.log(obj2.name)  //bbb
    console.log(obj1.name)  //aaa
複製代碼
  • 此時obj1的name也改變了。
  • 對象引用解除
    • 將對象設置爲null
  • 鑑別引用類型:instanceof
var aa = [];
  var bb = {};
  function vv (){}

  console.log(aa instanceof Array) //true
  console.log(bb instanceof Object) //true
  console.log(cc instanceof Functionn) //true

  // 引用類型都是繼承object
   console.log(aa instanceof Object) //true
   console.log(bb instanceof Object) //true
   console.log(cc instanceof Object) //true
複製代碼
  • 鑑別數組
// Array.isArray()
  var arr = [];
  console.log(Array.isArray(arr))//true
  
複製代碼
相關文章
相關標籤/搜索