1. undefinednull的區別?
1undefined:定義了未賦值
2null:定義並賦值,只是值為null

2. 什麼時候給變數賦值為null呢?
1)初始賦值:表明將要賦值為對象
2)結束前賦值:讓對象成為垃圾對象,被垃圾回收器回收
3. 嚴格區別變數類型與數據類型?
1)數據的類型
---- 基本類型
---- 對象類型
2)變數的類型(變數記憶體值的類型)
---- 基本類型:保存的就是基本類型的數據
---- 引用(物件)類型:保存的是地址值

 

<script type="text/javascript">
 // 實例:實例對象

 // 類型:類型對象
 // Person是構造函數,也是類型對象
 function Person(name, age) {
  this.name = name;
  this.age = age;
 }

 const person = new Person('白與瞳', 9999);
 console.log(person);

 class People {
  constructor(name, age) {
   this.name = name;
   this.age = age;
  }
 }

 // 根據類型創建的實例對象(簡稱:實例)
 const people = new People('展耀', 9999);
 console.log(people);

 // 1. undefinednull的區別?
 let a;
 console.log(a);   // undefined
 a = null;
 console.log(a);   // null

 // 表示初始賦值為null,表明將要賦值為對象
 let b = null;
 // 確認對象就賦值
 b = ['瞳耀', 999];
 // 最後賦值為null,釋放b陣列佔用的內存
 // b指向的對象成為垃圾對象(被垃圾回收器回收)
 b = null;


 let c = {};
 // c本身不是對象(物件),但是c可以找到對象(物件),因為c保存的是對象(物件)的地址值

 let d = function () {};
 // d是引用變數,因為函數是對象(物件),將對象(物件)賦值給一個變數,
 // 實際就是將對象(物件)的記憶體地址值保存到d裡面

 console.log(typeof d);    // 'function'

</script>

文章標籤

全站熱搜

bingzhichen 發表在 痞客邦 留言(0) 人氣()