数据类型
声明
声明(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)