- ベストアンサー
JavaScriptの記述について
JavaScriptの以下のような記述を見たのですが、 functionを()();で囲むとどうして実行されるのか 理解ができません。文法的にどのように解釈したらよいでしょうか? ( function() { alert("HELO"); } )();
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
関連するQ&A
- 現在のhtmlにjavascriptを記述する際の書き方を教えてくださ
現在のhtmlにjavascriptを記述する際の書き方を教えてください。 今までは以下のように記述していました。 このように<script>タグで囲む方法は古いらしいのですが・・・ <script type="text/javascript"> <!-- function test{ alert(1); } //--> </script>
- ベストアンサー
- HTML
- Javascriptのいろいろなファンクション記述
Javascriptにはいろいろな記述方法がありますが なぜみんな小難しい方の記述方法を選択するのでしょうか? 例えば、ファンクション 以下の1のように書けばいいのに、わざわざ2のように書くメリットを教えて下さい 1だとファンクションの位置を気にせず呼び出すことが出来るのになんで2みたいにするんでしょうか ・メモリの節約なのか? ・実行速度優位性なのか? ・1はレガシーで2が最新、W3C的な標準化がJavascriptにもあるのか? ・なんか一般的な書き方じゃないほうが、プロっぽくてカッコイイからか? さすがに一番最後の理由じゃないと思いますが 熟練者のかたお教え下さいませ (1) function hoge (){ } (2) var hoge = function(){ }
- 締切済み
- JavaScript
- Javascriptで教えてください
下記1だと実行できるのですが、2だと実行できないのはなぜでしょうか 1 <script type="text/javascript"> function OnButtonClick() { alert('クリック'); } $(function () { }) </script> 2 <script type="text/javascript"> $(function () { function OnButtonClick() { alert('クリック'); } }) </script>
- 締切済み
- JavaScript
- javascriptの記述方法
javascriptをhtml内に記述する時、 <script type="text/javascript> ~~処理~~ </script> だと思っています。 ただ、ボタンをクリックした時に、メッセージが表示される簡単なHTMLをonclickで作成する時 <input type="button" value="クリック動作確認" onclick="alert('ボタンがクリックされました')"> これだけで実行されます。(headタグにscript記述なしで動作確認。) なぜ、<script>記述がなくても動くのでしょうか? onclick等のイベントハンドラに動作を記述する際は、そういう物だと覚えておいたほうがいいのでしょうか? ※当然関数をonclickに使用する際は、onclick=関数(); と記述し、headのscriptタグに関数を記述すれば動くというのは分かっているのですが・・・。 なぜ、 onclick="alert('ボタンがクリックされました')" の場合は、noscript無しで、動作するのかが分かりません・・・。 ・onclick 属性 = javascript という判断をどこかでされているのでしょうか? その結果、noscriptに記述がなくても動く? ちょっと気持ち悪いので質問させて頂きました。 ご教授お願いします。
- ベストアンサー
- JavaScript
- JavascriptとJqueryを混在し記述
JavascriptとJqueryが混在したスクリプトファイル(.js)の書き方について質問です。 Jquery自体がjavascriptで書かれており結局はjavascriptであるということは理解していますが 気になるので質問させてください。 通常、javascriptの書き方として、スクリプトやその関数定義を1つのjsファイルに書くと思いますが、 Jqueryが混在しても考えは一緒で、ただ、ページが全て読み込まれた後(要素を特定できるようにするため)に実行したい場合の スクリプトを $(function(){ //Jquryや通常のjavascript }); の中にこのように書けばいいって話ですよね? つまり1つのjsファイル内に以下のようにスクリプトを混在させた書き方でもいいのですよね? ===== script.js ====== //(1)Javaスクリプト ←jsファイルが読み込まれたら実行するスクリプト //関数定義 function test(){ //Javaスクリプト } //(2)Jquery ←ページが全て読み込まれた後で実行するスクリプト $(function(){ //Jqueryスクリプト //Javaスクリプト }); 初歩的なことかもしれませんがすいません。
- ベストアンサー
- JavaScript
- javascriptの書き方
javascriptの記述で不明点があります function javas(){ for (var day = 1; true; day++){ //--何かしらの処理 } alert(""); //--ここが呼び出せない } 最後の部分が呼び出せないのですが、もともと呼び出せないものなのでしょうか。 もし呼び出せるとしたらどのように書けばよろしいでしょうか。 よろしくお願いします。
- 締切済み
- JavaScript
- JavaScriptでcgiの戻り値を受け取るには?
JavaScriptの関数内でcgiを実行(submit)しています。 そのcgiの実行結果(cgiで記述しているexit 0などの0)を受け取る方法を教えてください。 受け取った値によって、alertでメッセージを表示させたいです。 cgiの実行からalertでメッセージを表示させるまでの処理を JavaScriptの1つの関数内で行いたいです。 よろしくお願いいたします。
- ベストアンサー
- JavaScript
- Javascriptが特注文字解釈の対策
Javascriptが特殊文字を先に解釈してしまい、うまく機能しなくなるだけでなく、XSS脆弱性にもなるので、対策を考えています。 いろいろ検索などしてみたのですが、あまり情報がなく、みなさんどうされているのかなと。 たとえば PHPから出力した変数 $value をJavascriptの引数に入れる場合 <img src="http://....." onclick="myfunc('{$value}')" /> こんな感じの場合 $value = "');alert('テスト"; とすると alertが実行されてしまいます。(これは当然ですが) そして $value = "');alert('テスト"; これでも同じく実行されてしまいます。 ' は ' の特殊文字で通常無効化のために変換しますが、Javascriptでは、この特殊文字も普通に解釈していくようです。 さらに $value = "');alert('テスト"; という風に最初に0をつけても、解釈されてしまいます。 やはり、javascriptの引数に入れる際に、こういったものは変換(\'などに)ではなく、削除してしまうのがベストということでしょうか。
- ベストアンサー
- JavaScript
- javascriptの記述について教えてください。
javascript初心者です。 ホームページを作成しているのですが、 後からjavascripを追加するのに面倒なので、 以下、ページのものを使おうか、使わず、普通に記述しようか悩んでいます。 http://www15.plala.or.jp/mi-u/website/jsexternal/ext003.html 悩んでいる理由として、上記のものを使うことにより、 ページを開いた時に何か不具合が起きないかがわからないからです。 不具合は、ページの表示が遅くなる?とか、ページが開かなくなる?など、です。 javascriptに詳しい方、使っても問題がないのか、 使わず普通に記述したほうが良いのか教えてください。 また、使わないほうが良い場合、理由なども教えていただけると助かります。 どうぞ、宜しくお願いします。
- ベストアンサー
- JavaScript
- jQueryでの記述をjavascriptに
下記のjQueryの記述をライブラリ無しのjavascriptでの記述にしていただきたいです。 imgタグのsrc属性とaタグのhref属性を相対パスから絶対パスに動的に変換させる必要があるのですが、ある事情でjQueryを使えないとの事で困っています。 どうかよろしくお願い致します。 <script type="text/javascript"> $(function(){ $('#hoge').children('img:not([src^=http])').each(function (){ var imgSrc = $(this).attr('src'); $(this).attr('src','http://xxxxxxxxxxxx' + imgSrc); }); $('#hoge').children('a[href^=○○○]').each(function (){ var aHref = $(this).attr('href'); $(this).attr('href','http://xxxxxxxxxxxx' + aHref); }); }); </script>
- 締切済み
- JavaScript
補足
なるほど!わかりました。ありがとうございます。 やはりこのような無名関数を使う目的は難読化でしょうか?