最近在看一本 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
我估计是你理解错了。
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的行为是不一样的
参照下面的代码: