2
私はNode
(V8.5.0)は、このコードをどのように解釈するかの本当に驚いています:なぜNode.jsのconsole.logが変数の順列を妨げることができるのですか?
var a = 5;
var b = 10;
console.log('a = ' + a)
console.log('b = ' + b)
[a, b] = [b, a];
console.log(a);
console.log(b);
応答が
[a, b] = [b, a];
^
TypeError: Cannot set property '10' of undefined
at Object.<anonymous> (/Users/pom/lab/ES6-tests/destructuring.js:25:8)
at Module._compile (module.js:624:30)
at Object.Module._extensions..js (module.js:635:10)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Function.Module.runMain (module.js:665:10)
at startup (bootstrap_node.js:201:16)
at bootstrap_node.js:626:3
私はにconsole.logでのみVARを続ける場合は、表示されています正しい
console.log(a)
console.log(b)
[a, b] = [b, a];
これはどのようなことですか?
それは 'キャッチされない例外TypeErrorを言う:7::で未定義 のプロパティ '10' を設定することはできません8'グーグルで私のためにクロム。 –
lilezek
すべてのコードをコンソールに貼り付けて全体として実行すると、TypeErrorが発生します。しかし、一度に2行ずつまとめて実行すると、エラーなしでコンパイルされます。 –
すべてのセミコロンを入れても問題ありません。これは 'console.log( 'b =' + b)[a、b] = [b、a];として扱われています。 – skirtle