javascript 多个变量声明

最近在看一本 JavaScript面向对象编程指南(第2版)有一个章节提到的多个变量同时声明,但是结果报错?
请问是js版本的问题吗?而目前大多数是这样才正确?var a=1,b=2,c=3,d=4;

错误代码如下:

var v1,v2,v3 = 'hello',
    v4 = 42,
    v5;

    console.log(v1);         // undefined
    console.log(v2);         // undefined
    console.log(v3);         // hello
    console.log(v4);         // 42
    console.log(v5);         // undefined
阅读 19k
3 个回答

我估计是你理解错了。

PS:我也不赞同 定义这种说法,一个变量 应当是 声明和赋值 来描述比较准确

首先,不是报错。

var v1,v2,v3='hello' 这行代码中,声明了 v1,v2 但是没有赋值,声明了 v3 并且赋值了。

因此 v1 v2 是 undefined,(这个不是错误,声明变量不赋值,值就是undefined),v3是'hello'

同时赋值多个是这样子 var v4=v5=v6='hello'; 这行代码的意思是
首先,给全局变量v6赋值,v6='hello',因为没有声明v6,所以自动创建一个全局变量。
然后在把v6的值赋值给v5(和v6一样的意思)。
最后声明变量v4(这个是声明变量并且赋值),在赋值
可以说 v4和v5/v6的行为是不一样的

参照下面的代码:

    var v1,v2,v3 = 'hello';
    var v4=v5=v6='hello';
    console.log(v1,v2,v3); // undefined undefined "hello"
    console.log(v4,v5,v6); // hello hello hello

v1,v2属于没有定义,而不是全部定义为了‘hello’。

没有错啊,v1,v2,v5都只是声明了变量,却没有定义和赋值,当然输出的是undefined了

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