🌲☔️JS/TS 数据类型(基本数据类型-引用数据类型)

其安易持,其未兆易谋;javascript

其脆易泮,其微易散。 为之于未有,治之于未乱。 合抱之木,生于毫末; 九层之台,起于垒土; 千里之行,始于足下。 为者败之,执者失之。 是以圣人无为故无败,无执故无失。 民之从事,常于几成而败之。 慎终如始,则无败事。 是以圣人欲不欲,不贵可贵之货; 学不学,复众人之所过。 以辅万物之天然而不敢为。 --- 《道德经》 第六十四章。java

JS/TS 基本数据类型 primitive data type

  1. 布尔类型
  2. 字符串类型
  3. 数字类型
  4. null
  5. undefined
  6. es6 的 Symbol 数据类型

布尔类型: Boolean

乔治·布尔(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

Null 类型通常表示是清空,什么都没有。

// js
let xi = null;

// ts
let xii: null = null;
复制代码

undefined 类型

undefined 表示尚未进行定义,与 null 不一样的是 null 其实空,不是没有定义。没有定义的变量若是访问了,会输出 undefined, 或者报错。

// js
let b = undefined;

//ts
let c: undefined = undefined
复制代码

Symbol

符号,表示是独一无二的,Symbol 从 JavaScript 中引入就是为了解决独一无二的特性。如:对象属性名具备惟一性。 Symbol 是由 Symbol 函数调用建立,没有构造函数

let sym = Symbol(123)
复制代码

小结

JavaScript 中的基本数据类型 primitive data type 就是这六种。基本数据类型保存在栈中。基本数据类型没有引用数据类型的变化。

JS/TS 引用数据类型

  1. 数组
  2. 对象
  3. 函数

数组

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)}
复制代码

TS 的补充类型

  1. 元组类型: 元组类型容许您用固定数量的元素表示数组,这些元素的类型是已知的,但没必要相同。
  2. 枚举类型:是对标准数据类型集的有用补充enum
  3. Unknown 不知道类型: 描述编写应用程序时不知道的变量类型
  4. Any 任意类型: 与unknown类型不一样,类型变量any容许您访问任意属性,即便不存在也是如此
  5. Void 空类型: void有点相反any:根本没有任何类型。通常用于函数返回值
  6. Never 永远不会的类型:该never类型表示值是不会发生的类型

也就是说,数据类型上多了 6 中约束类型。

小结

  1. 基本数据类型 6 种,以及基本的建立方式。
  2. TS基本数据类型与 JS 相同,其对 JS 类型的补充如何 枚举类型,any 类型等功能型类型
  3. 简单对比 JS 与 TS 定义建立变量的区别,其实就是类型约束的区别。

下一步

  • 数据类型判断
  • 类型断言
相关文章
相关标签/搜索