其安易持,其未兆易謀;javascript
其脆易泮,其微易散。 爲之於未有,治之於未亂。 合抱之木,生於毫末; 九層之臺,起於壘土; 千里之行,始於足下。 爲者敗之,執者失之。 是以聖人無爲故無敗,無執故無失。 民之從事,常於幾成而敗之。 慎終如始,則無敗事。 是以聖人慾不欲,不貴可貴之貨; 學不學,復衆人之所過。 以輔萬物之天然而不敢爲。 --- 《道德經》 第六十四章。java
喬治·布爾(George Boole,1815.11.2~1864),1815年11月2日生於英格蘭的林肯。 19世紀最重要的數學家之一,出版了《邏輯的數學分析》 ,這是它對符號邏輯諸多貢獻中的第一次。1854年,他出版了《思惟規律的研究》 ,這是他最著名的著做。在這本書中布爾介紹瞭如今以他的名字命名的布爾代數。es6
// js
let bool = false;
let boolr = true;
// ts
let boolts: boolean = false;
let boolrts: boolean = true;
複製代碼
布爾包裝類型:數組
包裝類型是經過構造函數建立,本事一個包裝了基本類型的對象。markdown
let boolWrap = new Boolean(fasle);
複製代碼
Character string:字符串或串(String)是由數字、字母、下劃線組成的一串字符。函數
// js
let str = 'this is string';
// ts
let strTs: string = 'this is ts string';
複製代碼
字符串包裝類型ui
let strWrap = new String(false)
複製代碼
字符串包裝類型的本質是一個包裝了字符串的對象。this
數字類型用於表示數量值,用於計算spa
let a = 123;
// ts
let b: number = 123;
複製代碼
數字包裝類型:code
let num = new Number(123)
複製代碼
字符串包裝類型是一個對象,包裝了 number 類型。
Null 類型通常表示是清空,什麼都沒有。
// js
let xi = null;
// ts
let xii: null = null;
複製代碼
undefined 表示尚未進行定義,與 null 不一樣的是 null 其實空,不是沒有定義。沒有定義的變量若是訪問了,會輸出 undefined, 或者報錯。
// js
let b = undefined;
//ts
let c: undefined = undefined
複製代碼
符號,表示是獨一無二的,Symbol 從 JavaScript 中引入就是爲了解決獨一無二的特性。如:對象屬性名具備惟一性。 Symbol 是由 Symbol 函數調用建立,沒有構造函數
let sym = Symbol(123)
複製代碼
JavaScript 中的基本數據類型 primitive data type 就是這六種。基本數據類型保存在棧中。基本數據類型沒有引用數據類型的變化。
javascript 數組是一個數據的集合, 成員能夠是基本數據類型,也能夠是引用類型。可是 TypeScript 對數字成員進行了約束,必須所有爲指定的類型。
// 建立一個數組
let a = [1, 2, 3, 'string'];
var arr_names:number[] = new Array(4)
// ts
let a: number[] = [1, 2, 3]; // 成員必須都是 number
let a: Array<number> = [1,2,3]; // 使用泛型約束全部成員都是number類型
// ts 指定類型
let b = [number, string, number] = [123, 'hello', 89]
複製代碼
對象是key-value的集合,在 JavaScript 中 value,值能夠是:基本數據類型,引用數據類型。
// js
let ob = {
aa: false,
bb: 123,
cc: 'this is cc',
dd: null,
ee: undefined;
ff: Symbol("ff"),
gg: [1, 2, 4],
hh: function() {console.log("hh")},
jj: {x: 123, y: false}
}
//
let ob: Object = {
aa: false,
bb: 123,
cc: 'this is cc',
dd: null,
ee: undefined;
ff: Symbol("ff"),
gg: [1, 2, 4],
hh: function() {console.log("hh")},
jj: {x: 123, y: false}
}
複製代碼
// ts, 若是須要類型,須要在函數內部判斷類型
let func = function func(a) { console.log(a)}
// ts 參數類型,返回值類型,肯定函數類型
let fn = function fn(a: number):void {console.log(a)}
複製代碼
也就是說,數據類型上多了 6 中約束類型。