🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

1527閲覧

JavaScriptで変数の値が期待していたものと違う

practice1

総合スコア7

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2019/12/09 14:20

JavaScriptでシャローコピーを試している中で、
コンソールログでの表示内容が期待していた値と違いわかりません。
初心者な者でご教授の程、宜しくお願い致します。

ary1[0].nationality = 'usa'; (最終行) を実行する前なので期待していた値は [ {nationality: "japan"} ] なのですがなぜ [ {nationality: "usa"} ] が表示されるのでしょうか?

JavaScript

1const ary = [ 2 {nationality: 'japan'}, 3 {age: 20} 4]; 5const ary1 = ary.slice(0,1); 6console.log(ary1); 7ary1[0].nationality = 'usa';

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

コンソールを実行後に開いた、ということはないでしょうか。

オブジェクトを後から展開した場合、展開した瞬間の状態が表示されることがあります。

投稿2019/12/09 14:26

maisumakun

総合スコア145973

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

practice1

2019/12/10 01:20 編集

ご回答頂きありがとうございます。そういう事が発生する場合があるのですね。webpack-dev-serverの#0CJS(Zero-Config JS)の環境で試しているのですが、この環境だけが不具合なのかも知れません。他の環境でも試して見ます。ご丁寧にありがとうございます。
practice1

2019/12/10 01:28

oikashinoaさんご回答ありがとうございます。リンク先が大変参考になりました。 こういった事が発生しえる可能性が知れて大変勉強になりました。
guest

0

ブラウザでの実行で、開発者ツールで確認する場合、maisumakunさんの書いているような問題が起こるので、JavaSciptの言語の学習目的であれば、
・ブラウザを使わず、node.jsを使って、普通の言語のように実行する
・ブラウザのコンソールを使うなら、コンソールから、1行ずつ打ち込む
・表示にconsole.logを使わず、alertとかdocument.writeを使う(すすめないが)
とか。

投稿2019/12/09 14:45

otn

総合スコア85890

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

practice1

2019/12/09 14:57

ご回答頂きありがとうございます。node.js環境が確実なのですね。ご教授ありがとうございます。
otn

2019/12/09 15:09

node.jsだと、ブラウザの機能は(少なくともそのままでは)実行できないので、目的次第です。
practice1

2019/12/10 01:38

続けてありがとうございます。参考になりました。
guest

0

普通にjapanが当方では取得されました。

どこか別のconsole.logが反応しているのかキャッシュの問題では?

サンプル

投稿2019/12/09 14:24

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

practice1

2019/12/09 14:34

ご回答頂きありがとうございます。Web上の環境で試して見る事も手順なのですね。勉強になります。 キャッシュの問題とありますが、どういった手順を踏めば宜しいのでしょうか?参考のURLでも 構いませんのでご教授お願い致します。
practice1

2019/12/09 14:45

ご回答ありがとうございます。スーパーリロードは試してみましたが、解決しませんでし。他の方法も追って試してみます。ご丁寧にありがとうございました。
kyoya0819

2019/12/09 23:14

環境は何でしょうか?
practice1

2019/12/10 06:33 編集

引き続きありがとうございます。webpack-dev-serverローカルサーバーを立ち上げ、chrome78.0.3904.108 (Official Build) (64-bit)で実行しました。単純にローカルサーバーを使わない環境でも同じ結果が表示されました。参照型変数はオブジェクトを展開した瞬間の状態が表示される事があるとわかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問