0
メモリコピー操作では、次のことが起こりますか?JavaScriptでの文字列の割り当て動作
1: var foo, bar;
2: foo = 'abc';
3: bar = foo;
はメモリにコピーfoo
のメモリ表現は、3行目のbar
が指しますか?
foo
が1 MBのサイズの文字列(この例では6バイトとは異なります)の場合、これは変わりますか?
最後に、この動作はECMAScript仕様で定義されているのか、実装者に任されていますか? JavaScriptで
これはvarの単なる参考値なので、両方とも同じプリミティブを指しています。ですから、IMHOには1つのプリミティブがあり、2つのヴァースには参照があります。私はそれがより良いと言いたい。 – Jai
しかし、文字列には、あなたと矛盾しているような値渡しのセマンティクスがあります。 – Ben
@BenAstonここで、値渡しのセマンティクスを観察していますか? JavaScriptには、数値以外の値に対する「値渡し参照」セマンティクスがあります。「共有で呼び出す」とも呼ばれます。https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing – Dai