1. 分類
1)基本(值)類型
---- String:任意字符串
---- Number:任意數字,和整數、小數、正數、負數無關
---- booleantruefalse
---- undefinedundefined
---- nullnull
2)對象(引用)類型 / 物件類型
---- Object:任意對象,包含FunctionArray
---- Function:一種特別的對象,裡面的code是可以執行的
---- Array:一種特別的對象,有數值下標屬性,內部數據是有序的

2. 判斷
1typeof:返回的是數據類型的字串表達,
    可以判斷:undefined / number / string / boolean / function
    不能判斷:nullobject / arrayobject
2instanceof:判斷對象(物件)的具體類型
3===:可以判斷:undefined / null

 

<script type="text/javascript">

 // 1.基本類型
 let a;
 console.log(a, typeof a, typeof a === 'undefined', a === undefined);
 // undefined, "undefined", true, true
 console.log(undefined === "undefined");     // false

 a = 999;
 console.log(typeof a === 'number');   // true
 a = 'sci';
 console.log(typeof a === 'string');   // true
 a = true;
 console.log(typeof a === 'boolean');  // true
 a = null;
 console.log(typeof a, a === null);    // object, true

 console.log('========================================');

 // 2.對象(物件)類型
 const b1 = {
  b2: [999, 'sci', console.log],
  b3() {
   console.log('b3');
   return () => '我是function'
  },
 };

 // b1:實例對象,Object:構造函數,b1是不是Object的實例
 console.log(b1 instanceof Object, b1 instanceof Array);  // true, false
 console.log(b1.b2 instanceof Array, b1.b2 instanceof Object); // true, true
 console.log(b1.b3 instanceof Function, b1.b2 instanceof Object); // true, true
 console.log(typeof b1.b3 === 'function');   // true
 console.log('typeof b1.b2', typeof b1.b2);  // 'object'

 console.log(typeof b1.b2[2], typeof b1.b2[2] === 'function');   // 'function', true
 // 函數執行調用,直接在函數名後面加()
 b1.b2[2]('我是console.log()不要懷疑!!');
 console.log(b1.b3()());
 // 調用函數裡面的函數,b1.b3()是函數,要調用函數在加上() --> b1.b3()()
 
</script>

文章標籤

全站熱搜

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