最近在看一本 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
1 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
我估计是你理解错了。
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
添加回答
举报
0/150
提交
取消