javascript中的变量定义与变量声明的区别?

在看别人写的c语言博客中,写到了变量定义和声明变量的区别,我没理解。请问在js中,也有变量定义和声明的区别吗?(ps:我好像没有看到哪里写过定义变量这个说话啊)

阅读 6.2k
4 个回答

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,然后就是赋值。定义和声明好像混在一起了,一般不怎么区分定义和声明。

对于JS来说 declaration 和 statment 是一样的吧?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题