JavaScript筆記5:計時器、物件、基本資料型別、引用資料型別

學JAVA的好人發表於2020-10-18

目錄

console.time()計時器

物件

建立物件

新增屬性

讀取物件中的屬性

修改物件中的屬性值

刪除屬性

屬性名和屬性值

基本資料型別和引用資料型別


  1. console.time()計時器

    1. console.time()函式

      1. 可以用來開啟一個計時器

      2. 需要傳入一個字串作為引數,這個字串會作為該計時器的標識(名字)

    2. console.timeEnd()函式

      1. 可以用來關閉一個計時器

      2. 需要傳入一個字串(已有計時器的標識),用來指定需要停止的計時器

    3. 單位:ms

console.time('name')
程式碼塊
console.timeEnd('name')
  1. 物件

    1. 在JS中的資料型別有String、Number、Boolean、Null、Undefined、Object。前五種是基本資料型別,只要不是這五種,那就是Object物件

    2. 物件是一種複合的資料型別,在物件中可以儲存多個不同的資料型別的屬性

    3. 物件的分類:

      1. 內建物件:

        1. 由ES標準中定義的物件,在任何的ES的實現中都可以使用

        2. 如:Math、String、Number

      2. 宿主物件:

        1. 由JS的執行環境提供的物件,目前來講主要是指由瀏覽器提供的物件

        2. 如:BOM、DOM

      3. 自定義物件:

        1. 由開發人員建立的物件

    4. 建立物件

      1. 使用new關鍵字呼叫的函式,是建構函式(constructor)

      2. 建構函式專門用來建立物件

// 使用建構函式建立
var name1 = new Object();

// 使用物件字面量建立({})
var name2 = {};
var name3 = { 屬性名:屬性值, 屬性名:屬性值, …… };

// 使用工廠模式建立(使用工廠模式建立的物件都是Object型別)
function 函式名(形參1, 形參2, ...){
    // 建立一個新的物件
	var 物件名 = new Object();
    //新增屬性
    物件名.屬性1 = 形參1;
    物件名.屬性2 = 形參2;
    物件名.方法名 = function(){語句...}
    
    // 返回物件
    return 物件名;
}
var 物件名 = 函式名(實參1, 實參2, ...);

 

// 工廠模式最終版
function createPerson2(name, age, gender){
	// 建立一個新的物件
	var obj = new Object()
				
	// 向物件中新增屬性
	obj.name = name;
	obj.age = age;
	obj.gender = gender;
	obj.sayName = function(){
	    console.log('新:' + this.name + '  ' + this.age + '  ' + this.gender)
}
				
// 將該物件返回
	return obj;
}
			
var obj3 = createPerson2('孫悟空', 18, '男')
obj3.sayName()

 

  1. 新增屬性

    1. 物件中儲存的值稱為屬性,向物件新增屬性的語法:

    2.  

      // 向物件新增屬性
      物件名.屬性名 = 屬性值
      物件名["屬性名"] = 屬性值
      

       

    3. 物件名["屬性名"] = 屬性值更靈活,在[]中直接傳遞一個變數時,就會讀取變數值對應的屬性

    4.  

      obj['m'] = 123;
      var n = 'm'
      console.log(obj[n]);
      

       

    5. 讀取物件中的屬性

      1. 如果讀取物件中不存在的屬性,不會報錯,而是會返回undefined

    6.  

      // 讀取物件中的屬性
      物件名.屬性名
      

       

    7. 修改物件中的屬性值

      1.  

// 修改物件中的屬性值
物件名.屬性名 = 新值

 

  1. 刪除屬性

// 刪除屬性
delect 物件名.屬性名

 

		<script>
			// 建立obj物件
			var obj = new Object();
			// 向obj中新增一個name屬性
			obj.name = '孫悟空';
			// 取出obj的屬性值
			console.log(obj.name);
			// 修改name屬性的值
			obj.name = '豬八戒';
			// 取出obj的屬性值
			console.log(obj.name);
			// 刪除name屬性
			delete obj.name;
			// 取出obj的屬性值
			console.log(obj.name);
			// 列印
			console.log(obj);
		</script>

 

  1. 屬性名和屬性值

    1. 屬性名:

      1. 物件名不強制要求遵守識別符號規範,但是極力推薦遵守規範

    2. 屬性值:

      1. JS物件的屬性值可以是任意資料型別

    3. in 運算子

      1. 通過該運算子可以檢查一個物件中是否含有指定的屬性

        1. 有,則返回true

        2. 無,則返回false

// in 運算子語法
"屬性名" in 物件

 

  1. 基本資料型別和引用資料型別

    1. JS中的變數都是儲存在棧記憶體中

      1. 基本資料型別

        1. 基本資料型別的值直接儲存在棧記憶體中

        2. 值與值之間獨立存在,修改一個變數不會影響其他變數

      2. 引用資料型別

        1. 物件儲存在堆記憶體中,每建立一個新的物件,就會在堆記憶體中開闢一個新的空間,而變數儲存的是物件的記憶體地址(物件的引用)

        2. 如果兩個變數儲存的是同一個物件引用,當通過一個變數修改屬性時,另一個變數也會受到影響

    2. ==時

      1. 當比較兩個基本資料型別時,比較值

      2. 當比較兩個引用資料型別時,比較的是物件的地址

相關文章