问题
今天写代码时,看着JS代码没有问题,却总是报错,单独一行行执行却成功了。
现场:
源码:
let user1 = {}
[user1.firstName, user1.secondName] = 'Kobe Bryant'.split(' ')
console.log(user1.firstName, user1.secondName)
报错:
[user1.firstName, user1.secondName] = 'Kobe Bryant'.split(' ')
^
ReferenceError: Cannot access 'user1' before initialization
at Object.<anonymous> (d:\MyLearnProject\day02\es-demo\src\tempCodeRunnerFile.js:2:2)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
原因:
JS代码编译时会去掉空格,在这几种符号首行的情况下需要注意加分号。
符号 | 开头需要加分号 |
---|---|
` | |
( | |
[ |