私はJavascriptの初心者で、読んだものをできる限り試しています。
しかし、 と になるpop()とpush()、私が疑問に思っているいくつかの奇妙な結果が得られます。
コードは次のとおりです。
var arr = [];
arr.push(2,3);
console.log(arr);
console.log(arr.pop());
console.log(arr);
結果は次のとおりです。
【2、未定×1】
3
[2]
そうではありませんか:
[2、3]
3
[2]
私はJavascriptの初心者で、読んだものをできる限り試しています。
しかし、 と になるpop()とpush()、私が疑問に思っているいくつかの奇妙な結果が得られます。
コードは次のとおりです。
var arr = [];
arr.push(2,3);
console.log(arr);
console.log(arr.pop());
console.log(arr);
結果は次のとおりです。
【2、未定×1】
3
[2]
そうではありませんか:
[2、3]
3
[2]
これはconsole.log、ブラウザでの の非同期評価によるものです。最初の結果console.logが表示されるまでに、アイテムは のために既になくなっていますpop()。
正確な結果を得るには、次のように呼び出しますtoString()。
var arr = [];
arr.push(2,3);
console.log(arr.toString()); // 2,3 - as expected.
console.log(arr.pop());
console.log(arr);
コンソールはオブジェクトを「ライブ」として処理することに注意する必要があります。すでにコンソールに出力したオブジェクト (配列、オブジェクトなど) は、引き続き操作の対象となります。
そのため、最初のログで期待[2,3]したときに、コードはすでに 3 をポップしていたため、undefined3 の場所で置き換えられました。
もちろん、このイベントはブラウザがコンソールをどのように実装しているかによって異なります。