• ベストアンサー

var不使用かつ値未設定で変数を宣言した時の戻り値

例えば、 var goo; document.write(goo); とすると、ブラウザには戻り値としてundefinedが表示されます。 しかし、質問のように goo; document.write(goo); とすると、ブラウザには何も表示されません。前者後者とも変数の値は未設定ですが、後者は戻り値なしということなのでしょうか?

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5086/13298)
回答No.1

後者は構文エラーですね。 Webコンソールを見ると『ReferenceError: goo is not defined』って出てるので、gooなんて知らね~よって怒られています。

settu1300
質問者

お礼

ありがとうございます。構文エラーですか、納得しました! Webコンソールでエラー内容を表示させる手がありましたか。

関連するQ&A

  • DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか?

    DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか? 例として、以下のようにVARという変数に対して、ある文字列を設定し、その文字列の名前の変数の値を別の変数に代入したいのです。 set VAR="TMP" if /i "%VAR%"=="TMP" (SET TEST=%%VAR%%) echo %TEST% ここで求めている挙動は、SET TEST=%%VAR%%の命令によって SET TEST=%TMP% → SET TEST=C:\Windows\Temp のように展開されればいいのですが、実際はSET TEST=%VAR%となってしまいます。 なにか良い方法がないでしょうか?

  • Smarty変数の値をJavascript変数代入

    よろしくお願いします。 SmartyのテンプレートにPHPファイルからassignされた変数を、 Javascriptの変数に割り当てたいと思います。 Smartyのテンプレート内では、デフォルトの設定だと、 {$hoge} として、値をHTMLとして書き出す仕様ですが、 色々な諸事情から、このデフォルト設定を、 {{$hoge}} として、{ を二度重ねないと機能しないように設定変更しています。 そこで、下記のようなJavascriptを実行しても上手くいかず、かなりはまってしまってます。 お助けください。 ※ダメな例 <script type="text/javascript"> var balloonA = {{$hoge}}; document.writeln (balloonA); </script> ※↓これだと当然出力されます。 ※aaaaa と表示される。 <script type="text/javascript"> var balloonA = "aaaaa"; document.writeln (balloonA); </script> なぜ、上の書き方だと変数内の値を取得できないのでしょうか? "{{$hoge}}"や'{{$hoge}}' として試しました。でもだめです。 色々ネットで探しましたが、 {literal} を使って・・・・というのもやりましたが、ダメでした。 そもそも、Smartyのデフォルト設定を {{ に変更しているので関係ないと思います。 ん~~何卒お力をおかしください。

    • 締切済み
    • PHP
  • function の 戻り値の、値が入らない。

     一度作ったPHPを見直しています。 で、 globalを変数はどうしてもな時と、ここで みました。 私も、メモリーの節約や、きちんとしたスクリプトを 書くために、少なくしようと思うのですが、関数の 戻り値が、 Notice: Undefined variable: d in ○○○ 値がないと、注意がはいります。 (注意自体は、分かって出しています。) $a = 10; $b = 15; tst($a,$b); echo $d ; <?php function tst($a,$b){ $d = $a + $b ; echo $d ; return $d ; } ?> 関数内部の、echo $d;では、表示されるので、 間違ってはいないと思うんですが、どこが違うんで しょうか? HPや、本で調べてはみたんですが、下手の考え休むに にたり、かなーと、思ってきたので、もうお風呂に 入ろうかと。^^; よろしくお願いします。

    • ベストアンサー
    • PHP
  • Flash 変数宣言

    これまた超基本的な事ですが、 Flash(AS3)で変数宣言をする際の記述方法について質問させてください。 現在自分がやっている方法では、変数宣言する際 --------------------------------------------------------- var hensu:String = "あいうえお"; --------------------------------------------------------- としていて、これを例えばrootから ムービークリップ「mc」内に変数「hensu」を作る場合 --------------------------------------------------------- mc.hensu = "あいうえお"; --------------------------------------------------------- としています。これで特に問題ないのですが、 値を何も入れず、とりあえず変数だけ用意しておく場合、 rootに変数を作る時は --------------------------------------------------------- var hensu:String = new String(); --------------------------------------------------------- としています。また、 --------------------------------------------------------- var hensu:String; --------------------------------------------------------- だけでも、変数が作成されているよう?なのですが・・・ trace()で調べると new String()の場合は値が"空白"(何も表示されない) hensu:String;の場合は"null"になります。 という事はどちらの場合でも単純に変数だけ作るのであれば これで機能していると考えてもよいのでしょうか? この"空白"と"null"の違いを理解したいです。 また、rootからムービークリップ「mc」内に変数「hensu」を作る場合として、 --------------------------------------------------------- mc.hensu = new String(); --------------------------------------------------------- とすれば、大丈夫ですが --------------------------------------------------------- mc.hensu:String = new String(); --------------------------------------------------------- や --------------------------------------------------------- mc.hensu:String; --------------------------------------------------------- ではエラーが出ます。 root上に変数を作る時の --------------------------------------------------------- var hensu:String = new String(); --------------------------------------------------------- や、別の場所に変数を作る場合でも --------------------------------------------------------- mc.hensu = new String(); --------------------------------------------------------- では問題ないのに、 ●●●.変数:型 = new 型(); の形にするとエラーが出るのはなぜなのでしょうか? (記述方法が間違っているといわれればそれまでですが・・・)

  • select文の戻り値を変数に格納したい。

    select文の戻り値を変数に格納したい。 アクセスの選択クエリで以下の様なクエリをつくる。 select count(管理no) from 割り当てテーブル where 管理no = formのテキストボックスに書かれた値; doCmd.openQueryで実行させると画面が開きクエリの結果が表示される。 この値は必ず一つになるはずでその値を変数に取り込み次の処理を行いたい。 現在はクエリを実行後、フォームを開きなおし別の要素にクエリの結果を 表示させその値を取っている。なるべくならフォームを開きなす事をした くないので最初の実行時に変数として取り込みたい。

  • replaceで文字列結合、もしくはエスケープを

    文字列から「| goo」を削除したいです。 直接書くとうまくいくのですが、 変数に入れるとうまくいきません。 どう書けば良いのでしょうか? <うまくいく> var hoge="教えて | goo"; hoge = hoge.replace(/ \| goo/,""); document.write(hoge); <うまくいかない> var osiete="goo"; var hoge="教えて | goo"; hoge = hoge.replace(/ \| osiete/,""); document.write(hoge); <うまくいかない> var osiete="goo"; var hoge="教えて | goo"; hoge = hoge.replace(/ \| +osiete/,""); document.write(hoge);

  • getElementByIdを使用したグローバル変数の定義(使い方について) 

    グローバル変数の定義について教えてください。 getElementByIdを、グローバル変数で使用することはできないのでしょうか? 【グローバル変数(整数)】の場合 ------------------------------------------------- //グローバルで整数を定義 var a = 10; function test(){ alert(a.value); } 結果:「10」が表示される。 ------------------------------------------------- 【グローバル変数(getElementByIdを使用)の場合】 ------------------------------------------------- //グローバルでgetElementByIdで取得したオブジェクトを定義 var a = document.getElementById("objname"); function test(){ alert(a.value); } 結果:「null」 が表示される。 ※a = document.getElementById("objname"); でも同様。 ------------------------------------------------- 【ローカル変数(getElementByIdを使用)の場合】 ------------------------------------------------- function test(){ //ローカルでgetElementByIdで取得したオブジェクトを定義 var a = document.getElementById("objname"); alert(a.value); } 結果:「画面入力値」 が表示される。 ------------------------------------------------- このように getElementByIdで取得したオブジェクトを、 グローバル変数として扱った場合、nullとなるので困っています。 getElementByIdで取得したオブジェクトを、 グローバル変数として扱う良い方法はないでしょうか? 【環境】 OS:WindowsXP Pro 使用JavaScript:外部ファイルのjavaScript

  • PHP4で、メンバ変数の値を忘れてしまう2

    PHP4での質問です。 前の質問がわかりにくかったので、書き直しました。 オブジェクト指向的にいかがなものかとは思いますが、オブジェクトのメンバ変数を直接外部から変更したいと思います。 ---------<a.php>---------- class myClass {   var member = 0; } ---------<b.php>---------- $ary_c = array(); for ($i=0; $i<10; $i++) {   $c = new myClass();   $c->member = 1;   echo "(1)c->member=".$c->member;   array_push($ary_c, $c); } foreach ($ary_c as $c) {   echo "(2)c->member=".$c->member; } ------------------------------ 以上の様なソースで、(1)のデバッグライトでは、メンバ変数memberの値は1であるのに、(2)のデバッグライトでは、0になってしまいます。 この原因がお分かりのかた、もしよろしければ知恵をお貸し下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • jQueryのCSSで値に変数を使う方法

    jQueryでCSSを設定する際、 $("div").css("プロパティ","値"); とすると思いますが、この値の部分に変数を利用することはできないのでしょうか。 何がしたいかというと、for文の中で乱数を発生させ、それを値として使いたいのです。 for(i=0; i<10; i++){ var num = Math.floor(Math.random()*100); $("div:eq(i)").css("width",num); } このように書いてみましたが駄目でした。 値に変数を使う方法はありませんでしょうか。 できない場合、このような方法(CSSの値に乱数を使う)を実現できる方法はありませんでしょうか。

  • document.locationで変数使用したい

    document.locationに変数の値を使用しようとしたのですが、どうすればできるかわからなかったので、アドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 なお、下記がサンプルソースとなりますが、js_urlにPHPで取得した値は入っております(alertで確認しました)。 その為、本件はPHPとJavaScriptの連携の問題ではなく、document.location内で変数を使用する際の書き方に問題があると思います(ブラウザ上で確認した所、「'document.location = "http://oshiete.goo.ne.jp/"'」と出力されていれば動作するのではと思いますが、「'document.location = js_url'」と出力されており、変数の中身が展開されていませんでした(シングルクォーテーションで囲まれている為、変数と認識していないと思われますが、どう記述変更すればよいか分かりませんでした))。 【ソースコード】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Sample</title> <?php $php_url = "http://oshiete.goo.ne.jp/"; ?> <script type="text/javascript"> window.onload = function() { // setTimeout('document.location = "http://oshiete.goo.ne.jp/"', 2000); var js_url = "<?php echo $php_url; ?>"; alert(js_url); setTimeout('document.location = js_url', 2000); } </script> </head> <body> <p>Sample</p> </body> </html> 以上、よろしくお願いします。