在看别人写的c语言博客中,写到了变量定义和声明变量的区别,我没理解。请问在js中,也有变量定义和声明的区别吗?(ps:我好像没有看到哪里写过定义变量这个说话啊)
var str; //这个属于变量声明
str = "hhh"; //这个属于变量定义
另
var str2="fff";
这样的其实是两个过程,可以看成
var str2;
str2="fff";
而变量声明是会被提升的
意即
someCode(); var str2; str2="fff";
这样的其实真实顺序是
var str2; someCode(); str2="fff";
下面写个证据
function someCode(){ console.log(str2); } someCode(); var str2="fff";
以上代码运行后显示undefined而不是报错,如果没有变量提升则肯定会报str2 is not defined
自行参考这里
如果英语看不懂你再说
c语言声明应该是extern关键字声明变量名而不定义它,而定义则是指定具体的数据类型,并在内存中分配内存给变量,个人理解c中的声明更类似于引用。js中声明变量就用var,然后就是赋值。定义和声明好像混在一起了,一般不怎么区分定义和声明。