JavaScript関数に関する様々なテクニック集
2007年04月05日-
Lisp? Scheme? Erlang, Haskell? Forget about them! The most widely deployed functional programming language is Javascript.
JavaScript関数に関する様々なテクニック集が紹介されていました。
まずは基本的なJavaScript関数の使い方
<script language="javascript">
function hello(who) {
alert('Hello '+who);
}
hello('world');
</script>
「Hello World」を出力。
続いては関数リテラルのシンタックスによる関数の定義。
<script language="javascript">
var hello = function (who) {
alert('Hello '+who); // outputs "Hello world"
}
hello('world');
</script>
ちょっとJavaScriptを勉強をした方はここまでは知っているはず。
続いて次のちょっと変わった使い方。
hello 変数に関数リテラルの方式で変数に関数を代入し、その関数を別の関数sayの引数にして引数を関数として扱う方法です。
<script language="javascript">
var say = function(what) {
what('say function');
}
var hello = function (who) {
alert('Hello '+who); // outputs "Hello say function"
}
say(hello);
</script>
これは面白いです。「Hello say function」 がalertされます
次もちょっとかわった使い方。
<script language="javascript">
function pushedMyButton() {
alert('you pushed my button!');
}
function doSomething() {
return pushedMyButton; // return a pointer to the pushedMyButton function
}
document.onclick=doSomething();
</script>
document.onclick イベントに関数「doSomething」を指定し、その「doSomething」が別の関数「pushedMyButton」をリターンすることで、onclick イベントに「pushedMyButton」イベントを付与する方法。
ブラウザ画面をクリックすることで pushedMyButton が実行されます。
次も興味深いです。
<script language="javascript">
var test = function () {
return "This is a String";
}
var testCopy = test; // testCopy is a pointer to the test function()
var testStr = test(); // testStr contians "This is a string"
</script>
test を関数リテラルで定義して、他の変数に代入する時、testCopy の場合だと関数ポインタとなり、testStr の場合だとtest関数の返却する文字列がそのまま代入されます。
最後の () があるかないかで挙動が変わっています。
→ その他にもいろいろなJavaScript関数の使い方について述べられています
我こそはJavaScripter という方は是非とも覚えておきたいテクニックですね。
最新のブログ記事(新着順)
- Next.jsのVercelから商用利用可能なフリー汎用フォント「Geist Font 」
- 無料で使えるいい感じの日本語フォント「しっぽり太ゴシック」
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 好きな画像や文字を埋め込んだQRコードをリアルタイムで作れるWEBツール
- 約7500種の汎用ピクトグラムアイコン集「Phosphor Icons」
- ほぼCSSで実装されたUIフレームワーク「Ellegant CSS」
- TailwindCSSベースの150種類以上のUIライブラリ「SailboatUI」
- 1700種類以上のSVGアイコン「MingCute Icon」
- 過去のエントリ