1. 分類
(1)基本(值)類型
---- String:任意字符串
---- Number:任意數字,和整數、小數、正數、負數無關
---- boolean:true、false
---- undefined:undefined
---- null:null
(2)對象(引用)類型 / 物件類型
---- Object:任意對象,包含Function、Array
---- Function:一種特別的對象,裡面的code是可以執行的
---- Array:一種特別的對象,有數值下標屬性,內部數據是有序的
2. 判斷
(1)typeof:返回的是數據類型的字串表達,
可以判斷:undefined / number / string / boolean / function
不能判斷:null和object / array和object
(2)instanceof:判斷對象(物件)的具體類型
(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>
請先 登入 以發表留言。