When run the code:
`var t, a;
var myfun = function() {
return [1, 2];
}
[t, a] = myfun();
console.log(t);`
There will be an error:
[t, a] = myfun();
^
TypeError: myfun is not a function
at Object.
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:420:7)
at startup (bootstrap_node.js:139:9)
at bootstrap_node.js:535:3
After modifying the code as:
`var myfun = function() {
return [1, 2];
}
var t, a;
[t, a] = myfun();
console.log(t);`
It will work fine.
Could you please explain why?
Thanks
Automatic semicolon insertion at work. This code:
var myfun = function() {
return [1, 2];
}
[t, a] = myfun();
Is parsed as:
var myfun = function() {return [1, 2];}[t, a] = myfun();
Put a semicolon after the } to make it parse as intended. Another example of why semicolon-less style is evil.
Thanks for your prompt response
Most helpful comment
Automatic semicolon insertion at work. This code:
Is parsed as:
Put a semicolon after the
}to make it parse as intended. Another example of why semicolon-less style is evil.