Javascript 变量a,b,c={}

Javascript 变量a,b,c={},javascript,object,reference,assignment-operator,Javascript,Object,Reference,Assignment Operator,我认为语法: var a, b, c = {}; 这意味着这三个变量是分开的,而不是对同一个{}的引用 这是因为{}是一个对象,这是标准行为吗 因此,如果我这样做: var a, b, c = 0; 三者确实是分开的,而不是参照物 谢谢, Wesley它们不应该是相同的,不。只有c会被赋值 a和b将被声明,但不会初始化为任何内容(它们是未定义的)c作为其中唯一的一个,将被初始化为{} 也许写在几行上更清楚: var a, // no assignment b, /

我认为语法:

var a, b, c = {};
这意味着这三个变量是分开的,而不是对同一个{}的引用

这是因为{}是一个对象,这是标准行为吗

因此,如果我这样做:

var a, b, c = 0;
三者确实是分开的,而不是参照物

谢谢,
Wesley

它们不应该是相同的,不。只有
c
会被赋值

a
b
将被声明,但不会初始化为任何内容(它们是未定义的)
c
作为其中唯一的一个,将被初始化为
{}

也许写在几行上更清楚:

var a,      // no assignment
    b,      // no assignment
    c = {}; // assign {} to c

它们不应该相同,不。只有
c
将被分配值

a
b
将被声明,但不会初始化为任何内容(它们是未定义的)
c
作为其中唯一的一个,将被初始化为
{}

也许写在几行上更清楚:

var a,      // no assignment
    b,      // no assignment
    c = {}; // assign {} to c
这将声明3个变量(a、b、c),但仅定义1个变量(c)

这将声明3个变量(a、b、c),但仅定义1个变量(c)

这将声明3个变量(a、b、c),但仅定义1个变量(c)


这将声明3个变量(a、b、c),但仅定义1个变量(c)。

在示例中,您仅定义最后一个元素


a
b
未定义

在示例中,您仅定义最后一个元素


a
b
未定义

变量a、b、c={}仅定义最后一个变量,即
c
。它类似于语法
vara={},b=[],c=0


它只是声明多个变量的简写形式。

vara,b,c={}仅定义最后一个变量,即
c
。它类似于语法
vara={},b=[],c=0


这只是声明多个变量的简捷方法。

使用coma分离变量可以更简洁地在同一范围内定义多个变量。但是,在您的示例中,只有
c={}
a
b
未定义的。您可以使用类似的构造来指定如下内容

var a = {first: 'foo'}, 
    b = {second: 'bar'}, 
    c = {third: 'foobar'};
这等于

var a = {first: 'foo'}, b = {second: 'bar'}, c = {third: 'foobar'};
而且

var a = {first: 'foo'};
var b = {second: 'bar'};
var c = {third: 'foobar'};

而每一个都只会提到他们各自的目标。使用comas基本上只是一个视觉方面。

使用coma来分离变量,可以更简洁地在同一范围内定义多个变量。但是,在您的示例中,只有
c={}
a
b
未定义的。您可以使用类似的构造来指定如下内容

var a = {first: 'foo'}, 
    b = {second: 'bar'}, 
    c = {third: 'foobar'};
这等于

var a = {first: 'foo'}, b = {second: 'bar'}, c = {third: 'foobar'};
而且

var a = {first: 'foo'};
var b = {second: 'bar'};
var c = {third: 'foobar'};

而每一个都只会提到他们各自的目标。使用comas基本上只是一个视觉方面。

是的,这三个方面是分开的

逗号运算符先计算左操作数,然后计算右操作数,然后返回右操作数的值

如果只依赖于操作数的求值,而不处理返回值,那么这是一种在一行中声明一组变量的好方法

var i=0,j=1,k=2
基本上等同于
var i=0;var j=1;变量k=2

另一个用途是不使用
将多个操作压缩到一行上,类似于具有多个循环变量的for循环:

for(变量x=0,y=5;x


请注意x++和y--如何在同一行上执行。

是的,三者是分开的

逗号运算符先计算左操作数,然后计算右操作数,然后返回右操作数的值

如果只依赖于操作数的求值,而不处理返回值,那么这是一种在一行中声明一组变量的好方法

var i=0,j=1,k=2
基本上等同于
var i=0;var j=1;变量k=2

另一个用途是不使用
将多个操作压缩到一行上,类似于具有多个循环变量的for循环:

for(变量x=0,y=5;x


请注意,x++和y--是如何在同一行上执行的。

你能解释更多吗?我不明白我不明白。在第一个示例中,
a
b
未定义的。你是什么意思?你的意思是
vara=b=c={}a
b
未定义的。你是什么意思?你的意思是
vara=b=c={}