答案 0 :(得分:2)
var a, b = 3;
与以下内容相同:
var a;
var b = 3;
变量声明(var
关键字)不是表达式。变量声明中的逗号更类似于函数参数列表中的逗号。他们不会退货。
逗号运算符确实返回最后一项,但我不确定它是否有任何实际用例(在for
循环初始化之外)。
> 1, 2, 3
< 3
The page you linked to实际上解释得非常好。
答案 1 :(得分:1)
此:
Attaching to process ID 23054, please wait...
sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypeEntryTypeNameOffset" in any of the known library names (libjvm.so, libjvm_g.so, gamma_g)
at sun.jvm.hotspot.HotSpotTypeDataBase.lookupInProcess(HotSpotTypeDataBase.java:400)
at sun.jvm.hotspot.HotSpotTypeDataBase.getLongValueFromProcess(HotSpotTypeDataBase.java:381)
at sun.jvm.hotspot.HotSpotTypeDataBase.readVMTypes(HotSpotTypeDataBase.java:86)
at sun.jvm.hotspot.HotSpotTypeDataBase.<init>(HotSpotTypeDataBase.java:68)
at sun.jvm.hotspot.bugspot.BugSpotAgent.setupVM(BugSpotAgent.java:550)
at sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:476)
at sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:314)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:146)
at sun.jvm.hotspot.tools.JMap.main(JMap.java:126)
Debugger attached successfully.
jmap requires a java VM process/core!
是VariableStatement。 “正常完成”var a, b = 3;
评估VariableStatement
:
- 接下来是评估VariableDeclarationList的结果。
- ReturnIfAbrupt(下一个)。
- 返回NormalCompletion(空)。
醇>
此:
empty
是ExpressionStatement。 b = 3;
计算评估表达式的结果:
- 让exprRef成为评估Expression的结果。
- 回来?的GetValue(exprRef)。
醇>