Skip to content

数据类型

声明

  • 声明(declare) 意为创建,变量存储在内存中。如果你不知道什么是内存,可以将其理解为存放变量的箱子,被创建的变量存放在这个箱子中。

变量

  • 变量,意为可变的量,以let关键字+标识符声明,具体的可变体现在它可在初始化后再次赋值。

  • 初始化(initialize),赋予一个事物初始状态就叫初始化,例如声明变量后给它一个默认值。

  • 标识符,事物的名称,例如这里的标识符指的是变量的名称,在同一作用域下,我们不能重复使用相同的标识符声明事物。

  • 作用域,变量或函数等生效的起作用的区域。

js
// 声明变量
let a;
// 初始化
a = 1;
// 声明并初始化
let b = 0;

// 作用域演示

// 这里会报错,因为上边已经有一个变量a。
let a; 
{
    // 这里不会报错,因为这个变量a呆在这个块{}里
    // 如果在这个块中使用变量a,优先使用离得近的a
    let a; 
}
// 在外边访问不到块{}中的变量a,而是上边声明的变量a。

要点

声明变量用let。

常量

  • 常量,意为恒常不变的量,以const关键字声明,你必须在声明它的同时进行初始化,且不可再次赋值。
js
// 声明常量并初始化
const a = 1;
// 错误示例
const b;
// 编辑器报错'const' declarations must be initialized.ts
// 意为常量声明必须初始化

要点

声明常量用const。

函数

  • 函数是一种工具,或者机器,它具有“输入”、“处理”、“输出(返回值)”,三个部分,以function关键字声明。
js
// 一个加法函数
// 输入是两个变量,处理是执行加法,输出是加法的结果
function add(a, b){
    return a + b;
}
  • 返回值 函数返回的值,并非所有函数都有返回值,没有返回值的函数其返回值为void,意为空。
js
// 比较有没有返回值的区别

//有返回值
function add(a, b){
    return a + b;
}
// 声明
let a = 1;
let b = 1;
let c = add(a, b);
// 输出 c为2
console.log(c);

// 无返回值 这里函数名加下划线是为了避免重名,我们不能在同一作用域下声明标识符相同的函数或变量。
function add_(a, b){
    a + b;
}
let c_ = add_(a, b);
// 输出 c_为undefined 意为未定义
console.log(c_);
  • 何时使用返回值取决于你是否需要这个函数的结果,由于此处的函数只是两个值的简单相加,关于无返回值的函数在下方对象章节举例。

要点

声明函数用function。

对象

  • 对象是变量和函数的集合,变量有两种声明方式,一种是对象字面量,一种是new关键字。

  • 对象字面量,将一个对象以字面的形式写出来,这就叫对象字面量,字面的含义就是“字面”,使用{}表示声明对象字面量。

  • 键值对,如 a: 1 ,a为键(key)(K),称为键名,1为值(value)(V),称为键值。

js
// obj是Object的"缩写",Object意为对象
// 一个以对象字面量形式声明的对象
// 花括号{}曾在上文的作用域中出现,这里体现了它的作用,声明在{}内的变量外界无法直接访问
let obj = {
    // 声明在对象内的变量叫属性,这个形式是一个键值对。
    a: 1
};

要点

声明对象用{}或new。

赋值

  • 疑问:当你声明一个变量a,又声明一个变量b,令b = a,这时候改变a的值,b会改变吗?
js
// 声明一个变量a
let a = 1;
// 声明一个变量b,令b = a
let b = a;
// 改变a的值
a = 2;
// 输出b 结果b依然是1
console.log(b)