Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:多变量声明-变量何时可用?_Javascript_Scope_Variable Declaration - Fatal编程技术网

Javascript:多变量声明-变量何时可用?

Javascript:多变量声明-变量何时可用?,javascript,scope,variable-declaration,Javascript,Scope,Variable Declaration,假设我以以下方式声明变量列表: var a = "value_1" , b = "value_2" , c = b; c的预期值是多少?换句话说,变量的作用域是在逗号之后立即可用,还是在分号之后才可用 这与下面的代码段相反,在下面的代码段中,c的值将是“value_2”: 我想我应该询问而不是在浏览器中测试,并假设行为是一致的。参见: 逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值 因此,在计算b=“value_2”之前,必须先计算c=b这并不是问题的真正答案,但当面对在

假设我以以下方式声明变量列表:

var a = "value_1"
  , b = "value_2"
  , c = b;
c
的预期值是多少?换句话说,变量的作用域是在逗号之后立即可用,还是在分号之后才可用

这与下面的代码段相反,在下面的代码段中,
c
的值将是
“value_2”

我想我应该询问而不是在浏览器中测试,并假设行为是一致的。

参见:

逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值


因此,在计算
b=“value_2”
之前,必须先计算
c=b

这并不是问题的真正答案,但当面对在同一事物的两个表达式之间做出这样的选择时,请始终选择不那么模棱两可的表达式


在第二段代码中,每个人都清楚最终状态是什么。对于第一个问题,你必须在这里问一个问题才能知道:)如果你在一个月后回到代码中,或者如果其他人这样做了,那么你必须经历同样的过程来找出真正的含义。我认为你保存的6个字符不值得。

万岁。简洁之前的可理解性。有人相信它不是逗号运算符。如果是这样的话,这将起作用。
var a='foo',(b='bar',c='baz')
阅读您链接的文档可能是一个好主意:“注意var语句中的逗号不是逗号运算符…”同样来自那些文档“实际上,逗号的行为几乎与逗号运算符相同,尽管”是,在从左到右的作业范围内。链接到那些文档只是一种误导。刚看到这篇无关的文章——其中有相关的例子要澄清——基本上,解释器会在范围内的所有声明都首先运行之后才进行所有赋值,并维持顺序。
var a = "value_1";
var b = "value_2";
var c = b;