• ベストアンサー

javascriptの基礎的な質問です。

ご覧いただきありがとうございます。 javascript コンソールで var D; D.d="T"; console.log(D.d) とうつと、 TypeError: Cannot set property 'd' of undefined と出てしまいます。 これとは別に、 var D={d:"T"}; console.log(D.d) はうまくいくのですが、 前者はどこが定義として不十分なのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

エラーのとおりです プロパティはオブジェクトまたはオブジェクトに矯正可能な値のみに設定することが出来ます undefinedおよびnullはオブジェクトに矯正不可です なのでundefinedであるDにプロパティを設定することはできません

naonao321
質問者

お礼

迅速なご対応ありがとうございます。 助かりました。(泣

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

var D; D.d="T"; console.log(D.d) ではなく var D = {}; D.d="T"; console.log(D.d) とか var D = new Object(); D.d="T"; console.log(D.d) とか書けばOKなの

naonao321
質問者

お礼

お早いご対応ありがとうございました。 助かりました。(涙

関連するQ&A

  • javascriptのクラス名操作について

    javascriptのgetElementsByClassNameについて質問があります。 下記のようなクラス名を削除して別のクラスをつけるサンプルプログラムを作成しましたがjavascriptのエラーが出てクラスの追加できません。 ※エラー内容:Uncaught TypeError: Cannot read property 'classList' of undefined ---------以下プログラム-------------- <div class="a">aaa</div> <script> var obj = document.getElementsByClassName("a"); obj[0].classList.remove("a"); obj[0].classList.add("b"); </script> --------以上---------------------------- 「obj[0].classList.remove」をした時の前後で「console.log("obj");」をしたところ、 remove後のobjの値が空になっていました。 なぜこうなるか分からないため、分かる方ご教授の程よろしくお願い致します。

  • Javascript について質問です

    Javascriptで下記のような文章を書きました。 for(var i=0;i<3;i++){ console.log("T"); }; i=0; while(i==2){ console.log("i=0です"); i++; }; なんで実行結果に、0が入るのでしょうか? またwhile文についてですが、実行されておりません。条件式をi<2にしたら動きました。 理由が分からないので、教えてください。 実行結果 T T T 0

  • javascriptのエラーで困っています

    javascriptのエラーで困っています question.js:12 Uncaught TypeError: Cannot read properties of undefined (reading 'substr') at window.onload 参考URL https://www.kuuneruch.com/javascript01/ 何のエラーでしょうか? ご教授よろしくお願いします。

  • JavaScript プロトタイプについて

    ●質問の主旨 下記のコードを書くとエラーとして、 TypeError: Cannot set property 'totalPrice' of undefined が返されます。なぜでしょうか?原因が分かりません。 個人的には、このコードで、totalPriceメソッドを定義しているつもりなのですが…。 お詳しい方がいらっしゃいましたら、ご教示願います。 ●コード function Menu(name, price) { this.name = name; this.price = price; } var hamburger = new Menu("ハンバーガー", 100); hamburger.prototype.totalPrice = function(quantity) { return this.price * quantity; } var cheeseburger = new Menu("チーズバーガー", 120); cheeseburger.prototype.totalPrice = function(quantity) { return this.price * quantity; } output("太郎は、" + hamburger.name + "を" + hamburger.totalPrice(5) + "円分買いました。"); output("二郎は、" + cheeseburger.name + "を" + cheeseburger.totalPrice(3) + "円分買いました。"); ●元ネタ CodeStudy Javascript 4.プロトタイプ その3 http://jeek.jp/study/section21/4

  • Javascript selectタグ 値 利用

    javascriptで、<select>タグの扱い方について <select>のドロップダウンで、選択されたvalue値の取得  var adrress = document.getElementById("ID名").selectedIndex;  console.log(address); これですと、ログにundefinedと表示されるのですが、selectタグにonchange="処理"(?)を入れて、その関数も定義する方法以外に、<select>のvalueの値 を、変数に格納して、利用する方法はありますでしょうか? 詳しい方回答よろしくお願い致します。

  • javascript var

    javascript 「var」について ソースコード function hello(name){ 「var」 msg = "your name " + name; return msg; } var greet = hello("Tom"); console.log(msg); ソースコードの2行目の頭に「var」をつけるかつけないかでコンソールエラーになるか、ならないかが変わるのですが「var」をつけると何故かエラーになるのですが、その理由が分かる方いらっしゃいますか? 「var」は「バリアブル」の略で変幻自在みたいな意味だと思うのですが、それをつけてエラーになる理由が良く分からなくて質問致しました。 馬鹿な質問ですが答えて頂けると助かります。m(__)m

  • 関数を呼んだら、その中の関数も自動実行される?

    ・関数の実行タイミングが分からないので教えてください ・下記で、どうして引数が渡るのでしょうか? ・portal関数を呼んだら、gooプロパティに無名関数が格納される(?)と思うのですが、=関数実行になるのでしょうか? ・無名関数だから? var obj = {  portal : function( arg ) {   var goo = function(arg){    console.log(arg);   }(arg);  } } obj.portal("あ"); ・自分的には、portal関数を呼んで変数gooに無名関数を格納(?)した後、明示的にgoo();と呼ぶ必要があると思うのですが… ・下記でTypeErrorエラーになるのは、gooプロパティが2回呼ばれるから? ・明示的に呼んだ2回目は引数が渡らないから? var obj = {  portal : function( arg ) {   var goo = function(arg){    console.log(arg);   }(arg);   goo();  } } obj.portal("あ"); //TypeError: undefined is not a function

  • JavaScriptのnullはいつ使う?

    JavaScriptにはnullという値がありますが、いつ使うのでしょうか。 値が定義されていない変数やプロパティには、undefinedが入っていますし、 undefinedを代入することもできます。 C#でのnullの使い方と同じように、undefinedが使えちゃってます。 ではnullはいつ使うのでしょう? undefinedではなくnullでなければダメなケースって何がありますか?

  • Javascript について質問です

    for in 文について質問です。(実行結果は一番下にあります。) 本当に分からなくて困っています。質問自体長く、お見苦しい点も多いと思いますが、皆様の力が必要なので、分かる方がおりましたら助けてくださると本当にありがたいです。 下記のように、friendsというオブジェクトを定義しました。 いまいち、オブジェクトの意味が理解できていないので、表層的なことしか理解できておりません。下記のプログラムは動きましたが、codeacademyというサイト上で動かしているので、少し実行結果が変わってしまい、よくわかりません。 質問(1):そこで質問なのですが、下記(真下)のプログラムは、どのような動きをしているのでしょうか。これは単純に、steve,jobsを出力するためのプログラムでしょか? var list= function(friends){ for(var i in friends){ console.log(i); } } 質問2;こちらの関数についてですが、nameを引き渡していますが、プログラム上には何も定義していないのに、動きました。なぜ動くのでしょうか? var search = function(name) { for (var key in friends) { if(friends[key].firstName== name){ console.log(friends[key]); return friends[key]; } } }; 質問3; search 関数の中で、for in 文の中にiを定義していますが、これは、単純にプロパティの個数文、for文を回すものと理解してもよろしいでしょうか。 私が気になっているのは、friends[i]となっても、friendsオブジェクトでそのような変数を定義していないので、マッチしないと思い、いまいち理解しきれません。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー var friends={ steve: { firstName: "Steve", lastName: "jobs", number: "090", address: ["Apple fundor"] }, bill: { firstName: "Bill", lastName: "Gates", number: "080", address: ["Microsoft fundor"] } }; var list= function(friends){ for(var i in friends){ console.log(i); } } var search = function(name) { for (var key in friends) { if(friends[key].firstName== name){ console.log(friends[key]); return friends[key]; } } }; ーーーーーーーーーーーーーーーーーーーーー実行結果ーーーーーーーーーーーー { firstName: 'Steve', lastName: 'jobs', number: '090', address: [ 'Apple fundor' ] } { firstName: 'Steve', lastName: 'jobs', number: '090', address: [ 'Apple fundor' ] } { firstName: 'Bill', lastName: 'Gates', number: '080', address: [ 'Microsoft fundor' ] }

  • javascript if文

    javascript if文 まずソースコードなのですが var num; var sign; num = 20; (1)sign = num >= 0 ? '正' : '負'; console.log( num + "は" + sign ); (2)if(num >= 0){ console.log( num + "は" + sign ); } (1)と(2)は同じ意味なのですか?(1)のやり方はあまり見かけないのですが用途としてはどのような時に使うのですか? 馬鹿な質問でスミマセン。

専門家に質問してみよう