声明、定义、初始化,这三个概念是有区别的,用 JavaScript 的时候,我们基本不会考虑这三个东西,所以可以参看一下 C/C++ 中对它们的不同的解释,目前学习了一点点语法,再参看这一篇博客《C语言中声明和定义详解》,有一些粗浅的理解。
一、声明(Declaration)
声明一个东西,意味着
- 仅仅新增一个名字和类型(JavaScript无类型)
- 不分配内存空间
// 引入外部变量 i
extern int i;
// 引入外部函数 fetchPure
import {fetchPure} from 'common'
二、定义(Definition)
定义一个东西,意味着
- 新增了一个名字和类型(JavaScript无类型)
- 分配了内存空间
- 不管内存空间有无东西
// 定义变量a,分配了4个字节内存空间
int a;
// 定义变量a,分配一定内存空间
let a
三、初始化(Initialization)
初始化一个东西,意味着
- 新增了一个名字和类型(JavaScript无类型)
- 分类了内存空间
- 内存空间有我们往里添加的东西
int a = 5;
let a = 5
四、小总结
他们的区分关键分两步:
- 先看有没有新增内存地址,没新增就是声明,新增了就是定义或者初始化
- 再看有没有给它分配内容,没分配就是定义,分配了就是初始化
- 声明一般用于引入外部变量,意味着它的定义在其他地方,我们把拿过来用一下,所以可以多次声明
- 初始化一定就伴随着定义,定义不一定伴随着初始化
- 定义和初始化相比较,我一般尽可能用初始化,实在不行我才会仅仅初始化(写 JavaScript 的时候)
「@浪里淘沙的小法师」