JavaScript的data types分成 primitive type 和 object type
Primitive type有 strings, numbers, booleans, null, undefined
Strings可以用 單引號''
、雙引號""
或是反引號``
來表示。
var x = 'A';
var y = "Zer";
var z = `18`;
console.log(typeof(x)); //String
console.log(typeof(y)); //String
console.log(typeof(z)); //String
數字則不加上任何的引號
var x = 20.5;
var y = Infinity;
var z = NaN;
var a = 20 / 'b';
console.log(typeof(x)); //number
console.log(typeof(y)); //Infinity 和-Infinity 都是 number,如果寫成infinity則會變成not defined。
console.log(typeof(z)); //number
console.log(a); // 讓數字除以字串會回傳NaN (Not a Number),代表了計算錯誤。
console.log(typeof(a)); //但還是會回傳資料型態是 number。
+
可以讓string連結在一起,也可以讓number做加法的運算。
var w = '2';
var x = '8';
var y = 2;
var z = 8;
console.log(w + x);
// 28 結果是把'2' 和 '8'兩個字串寫在一起的字串'28'。
console.log(typeof(w + x)); //string
console.log(y + z);
// 10 數字2和8相加後,形成數字10。
console.log(typeof(z + y)); //number
console.log(y + z + x);
// 108 會先將y和z當成數字相加,再加上字串'8',形成字串'108'。
console.log(typeof(z + y + x)); //string
console.log(x + y + z);
// 828 直接會把原本數字y和z當成了字串,產生字串'828'。
console.log(typeof(z + y + x)); //string
布林的值只有true跟false,
var x = 5;
var y = 8;
console.log(x > y); // false
console.log(y > x); // true
邏輯的運算有&&
、||
、!
&&
代表and,兩個條件都要達成才會回傳true。
var x = 5;
console.log(x > 1 && x > 6); // false
console.log(x > 1 && x > 4); // true
||
代表or,只要達成一個條件就會回傳true。
var x = 5;
console.log(x > 1 || x > 6); // true
console.log(x > 1 || x > 4); // true
console.log(x > 7 || x > 6); // false
!
代表not,true會回傳false,false則會回傳true。
var x = 5;
console.log(! x > 1); // false
console.log(! x < 3); // true
null 和 undefined 觀念有點抽象,如果硬要譬喻的話,
null 應該是 我有一個"空的"盒子。,盒子裡甚麼都沒有,是空的。
undefined 則是 我有一個盒子,至於盒子裡是空的還是有裝東西?沒有被說明清楚。
var x = null;
var y;
console.log(typeof(x)); //object
console.log(typeof(y)); //undefined