Js原始数据类型:boolean、number、string、null、undefined、symbol、bigInt

boolean

  1. const isBool: boolean = false;
  2. // 编译通过
  3. // 后面约定,未强调编译错误的代码片段,默认为编译通过

构造函数Boolean生成的结果不是boolean,详情阅读红宝书原始数据类型相关内容,笔记不再对基础姿势做过多解释。类似String也是一样道理,不在赘述。
image.png

number

  1. let decLiteral: number = 6;
  2. let hexLiteral: number = 0xf00d;
  3. // ES6 中的二进制表示法
  4. let binaryLiteral: number = 0b1010;
  5. // ES6 中的八进制表示法
  6. let octalLiteral: number = 0o744;
  7. let notANumber: number = NaN;
  8. let infinityNumber: number = Infinity;

0b10100o744是ES6的二进制和八进制表示法,会被编译为十进制。

string

  1. let myName: string = 'Tom';
  2. let myAge: number = 25;
  3. // 模板字符串
  4. let sentence: string = `Hello, my name is ${myName}.
  5. I'll be ${myAge + 1} years old next month.`;

null

null是所有类型的子类型,所以说null可以复制给别的类型(**strict**模式下null无法赋值给别的类型)

  1. let n: null = null;
  2. let num: number = 123;
  3. let str: string = 'hello'
  4. num = null;
  5. str = null;

undefined

undefined是所有类型的子类型,所以说undefined可以复制给别的类型(**strict**模式下undefined无法赋值给别的类型)

  1. let u: undefined = undefined;
  2. let num: number = 123;
  3. let str: string = 'hello'
  4. num = undefined;
  5. str = undefined;

symbol

  1. let isSymbol: symbol = Symbol('symbol');

bigInt

  1. let isBigInt: bigint = BigInt('111111111111111111111111');

void

Js中没有void的概念,Ts中表示没有任何返回结果的函数
可以给void类型的变量赋值undefined和null(**strict**模式下null无法赋值给void类型)

  1. function alertName(): void {
  2. alert('My name is Tom');
  3. }
  4. let u: void = undefined;
  5. let n: void = null;