/*
** 全部的數據類型
*/
// 一、數字(number)類型
var num = 1;
console.log(typeof num); // number
// 二、字符串(string)類型
var str = "sunsumei";
console.log(typeof str); // string
// 三、布爾(boolean)類型
var boo = true;
console.log(typeof boo); // boolean
// 四、對象(Object)類型
var obj = {};
console.log(typeof obj); // Object
// 五、數組(Array)類型
var arr = [];
console.log(typeof arr); // Object
console.log(arr instanceof Array); // true
// 六、函數(Function)類型
var fn = function(){};
function fn(){};
console.log(typeof fn); // function
console.log(fn instanceof Function); // true
// 七、undefined類型
var un;
console.log(typeof un); // undefined
// 八、null類型
var nu = null;
console.log(typeof nu); // Object
/*
** 基本數據類型轉換-隱式
*/
// 一、數字類型/undefined/null----布爾類型
var num; // undefined -> false
num = 0; // false
num = 0.0; // false
num = NaN; // false
num = -1; // true
num = 1; // true
num = null; //false
num = ''; // false
if(num){
console.log(true);
}else{
console.log(false);
}
// 二、數字----字符串
var num = "21";
console.log(1 + num); // 121
// 三、字符串----數字
var str = '12';
console.log(typeof str); // string
str = 1 * num;
console.log(typeof str); //number
/*
** 基本數據類型轉換-顯示轉換(強制轉換)
*/
// 一、Boolean()函數轉換-->其餘類型轉換爲布爾類型
var test = Boolean(); // false
test = Boolean(0); // false
test = Boolean(0.0); // false
test = Boolean(''); // false
test = Boolean(1); // true
test = Boolean("1.1"); // true
console.log(test);
// 二、Number()函數轉換 -->其餘類型轉換爲數值類型
var test1 = Number(123); // 123
test1 = Number(false); // 0
test1 = Number(true); // 1
test1 = Number(undefined); // NaN
test1 = Number(null); // 0
test1 = Number("24k"); // NaN
test1 = Number("24"); // 24
console.log(test1);
// 三、String()函數 -->其餘類型轉換爲字符串類型
var test2 = 11;
console.log(typeof test2); // number
test2 = String(test2);
console.log(typeof test2); // string
test2 = true;
console.log(typeof test2); // boolean
test2 = String(test2);
console.log(typeof test2); // string
test2 = undefined;
console.log(typeof test2); // undefined
test2 = String(test2);
console.log(typeof test2); // string
test2 = null;
console.log(typeof test2); // object
test2 = String(test2);
console.log(typeof test2); // string
// 四、parseInt()函數 -->其餘類型轉換爲整型數字類型
var test3 = parseInt('3.14'); // 3
test3 = parseInt('4.99'); // 4
test3 = parseInt('24k'); // 24
test3 = parseInt('24.1k'); // 24
test3 = parseInt('SB'); // NaN
test3 = parseInt('0xfff'); // 4095 傳入16進制
test3 = parseInt('0237'); // 237 傳入8進制
test3 = parseInt(22,16); // 34 轉換爲16進制輸出
test3 = parseInt(22,8); // 18 轉換爲9進制輸出
test3 = parseInt(22,2); // NaN 不能轉換爲2進制
test3 = parseInt(true); // NaN
test3 = parseInt('true'); // NaN
test3 = parseInt('tr8ue01'); // NaN
test3 = parseInt('8true01'); // 8
console.log(test3);
// 五、parseFloat()函數 -->其餘類型轉換爲浮點型數字類型
var test4 = parseFloat('3.14'); // 3.14
var test4 = parseFloat('2.99'); // 2.99
var test4 = parseFloat('3.14p'); // 3.14
var test4 = parseFloat('24K'); // 24
var test4 = parseFloat('K24'); // NaN
var test4 = parseFloat(true); // NaN
console.log(test4);