タグ

ブックマーク / analogic.jp (5)

  • JavaScriptにおけるモジュールとimport/exportの使い方|もっこりJavaScript|ANALOGIC(アナロジック)

    JavaScriptにおけるモジュール CommonJSやAMDの登場 ES2015からは標準採用された モジュールを使うためには? モジュールファイルの作成(export)と読み込み(import) 参考リンク JavaScriptにおけるモジュール 例えばコーポレートサイトのような普通のWEBサイトの場合、JavaScriptコード量はそれほど多くはならないないと思います。ページにいくつかのギミックを加える程度ならば1つのJavaScriptファイルに全てのコードを詰め込んだとしても特に問題は無いでしょう。 しかし、WEBアプリ開発のようにJavaScriptでゴリゴリとコードを書いていく場合、ある程度機能(役割)別にファイルを切り出して別ファイルとして管理したいところです。そのようにして関連性を持たせて切り離された一塊のコード群が「モジュール」です。 説明するまでもないのですが、別に

  • “use strict”(厳格モード)を使うべきか?|もっこりJavaScript|ANALOGIC(アナロジック)

    変数の使用の単純化 withの使用の禁止 strictモードではwith文が使えなくなります。代替の手段としては、オブジェクトに短い名前の変数を割り当てて、その変数を用いて対応するプロパティにアクセスすることができます。 eval内で宣言された変数のスコープ 非strictモードでは、eval("var x ;")の様に、eval関数内で定義された変数のスコープは、evalが含まれるスコープ(関数、またはグローバルスコープ)まで広がりますが、strictモードでは、eval内で定義された変数を周囲のスコープに広げません。 単純名の削除の禁止 strict モードでは delete name を構文エラーにします evalおよびargumentsの単純化 strictモードでは「eval」「arguments」という名前がキーワードとして扱われるため、これらのキーワードに対して言語構文でのバ

  • 関数を理解すればクロージャは難しくない!|もっこりJavaScript|ANALOGIC(アナロジック)

    クロージャとは クロージャの質 なぜクロージャを使うのか? まとめ JavaScriptを学んでいく過程で必ず耳にする単語「クロージャ」 すごく難しいものではないと思うのですが、どことなくつかみどころがない、うまく説明できない、そんな存在ではないでしょうか? 私自身、正直なところクロージャについては「なんとなく使ってはいるが、使い方をうまく伝えられない」といった程度です。 これから先、クロージャについてモヤモヤしながら仕事をしていくのもどうかと思ったので、この機会に私もクロージャについて理解を深めるべく記事を書くことにしました。 クロージャは、それ自体が難しいというよりは、説明が難しいものだと思います。 そのため、ネットでクロージャのことを調べていくと、(もちろん大変参考になる情報も多いのですが)少し質ではない部分について語られているものも多い気がします。 このエントリではクロージャの

  • 即時関数のメリットと主な用途|もっこりJavaScript|ANALOGIC(アナロジック)

    即時関数の構文 即時関数はスコープを汚染せずに新たなスコープを作成するための唯一の手段 即時関数が使われるケース まとめ JavaScriptには「即時関数」という構文があります。即時関数は関数を定義すると同時に実行するための構文で、この即時関数を使ってコードを書いたことのある方も多いのではないかと思います。 JavaScriptに慣れている方にとっては「何を今さら」といった書き出しかもしれませんが、私はこの即時関数を初めて知った時、その必要性がイマイチ見出せませんでした。それは、「関数を定義と同時に実行するのは分かるけど、別に普通に関数を定義して、その関数を呼び出せばいいじゃん」って思ったからです。 確かに、一度しか使われないような関数をいちいち名前付きで定義してそれを呼び出すというコードは冗長的かもしれません。そのような場合は即時関数を使った方がよりスマートなコードになるでしょう。です

  • 知らないと怖い「変数の巻き上げ」とは?|もっこりJavaScript|ANALOGIC(アナロジック)

    概要 とりあえず問題 なぜこうなるのか? まとめと予防策 JavaScriptには、他の言語ではあまり聞かない(あるいは存在しない)「変数の巻き上げ(hoisting)」という概念があります。これは(たぶん)JavaScript特有のもので、かつ重要なポイントです。 この「変数の巻き上げ」が原因でコードが思った通りの動作をしなかった場合、この概念を知らないと、いくらコードを見直しても問題を発見することができません。ドツボにはまります。 そういう意味でも、この「変数の巻き上げ」の概念をおさえておくことは重要です。 とりあえず問題 変数の巻き上げを説明するには、文章で説明するよりもコードを見てもらった方が理解できると思います。 まずは次のコードを見てください。 var myname = "global"; function func() { console.log(myname); //出力内

  • 1