タグ

JavaScriptに関するjsstudyのブックマーク (517)

  • Google Search

    If you're having trouble accessing Google Search, pleaseclick here, or sendfeedback.

  • Web開発アーキテクチャ「JAMスタック」がなぜ人気になっているのか

    静的サイトジェネレーターが最近、非常に普及してきました。 それに合わせて注目されているのが「JAMスタック」です。JAMスタックとは何なのか、なぜJAMスタックが人気になっているのかを紹介します。 Why JAMstack is Becoming so Popular by Luca Spezzano 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに JAMスタックとは JAMスタックを使用する利点 JAMスタックはなぜ人気があるのか まとめ JAMスタックの有用なリソース はじめに 最近、静的サイトジェネレーターが非常に普及してきています。静的サイトジェネレーターは使い方が簡単で、最新のテクノロジーVue.jsやReactなどのJavaScriptフレームワークに基づいて実装されています。静的サイトジェネレーターをは

    Web開発アーキテクチャ「JAMスタック」がなぜ人気になっているのか
    jsstudy
    jsstudy 2019/11/06
    NetlifyはJAMstackという新しい用語を発表しました。JAMstackは静的なHTMLサイトで、コンテンツを更新するたびに自動的に再構築され、CDNに直接デプロイされます。ちなみにJAMstackのJAMは、JavaScript、API、Markupの頭文字です
  • 十六章第六回 ジェネレータ — JavaScript初級者から中級者になろう — uhyohyo.net

    十六章第六回 ジェネレータこのページの最終更新日:2019年7月2日 今回はジェネレータ(generator)を解説します。これは、ざっくり言うと途中で抜けたりまた入ったりできる関数です。 今まで、関数が実行されると必ずその関数は最後まで(またはreturn文にたどり着くまで)実行されました。今回紹介するジェネレータ関数(generator function)を使うとそうではない関数を作ることができます。 function*では、例を見てみましょう。 // ジェネレータ関数を定義 function* gen(x){ console.log(x); yield; console.log(x*2); yield; console.log(x*3); } var g = gen(10); console.log("1回目"); g.next(); console.log("2回目"); g.ne

    十六章第六回 ジェネレータ — JavaScript初級者から中級者になろう — uhyohyo.net
    jsstudy
    jsstudy 2019/11/03
    途中で抜けたりまた入ったりできる関数です。今まで、関数が実行されると必ずその関数は最後まで(またはreturn文にたどり着くまで)実行されました。ジェネレータ関数を使うとそうではない関数を作ることができます。
  • ジェネレータについて - JS.next

    概要 V8でジェネレータ周りの実装が進んできたので、解説してみようと思う。 ジェネレータ関数 ジェネレータ関数とは、(一つの見かたとしては)処理を途中で一時停止できる関数のことである。 例えば、呼び出される度に数を順番に返す関数を定義したいとする。 function count(n) { return function () { return n++ } } var next = count(10) next() // 10 next() // 11 next() // 12 これがジェネレータ関数を用いると次のように書ける。 function* count(n) { while (true) { yield n++ } } var gen = count(10) gen.next() // { value: 10, done: false } gen.next() // { value:

    ジェネレータについて - JS.next
    jsstudy
    jsstudy 2019/11/03
    次のyield式まで処理を進め、式の結果の値が返される。「yield」はジェネレータ関数内で有効なキーワードで、式を作る。returnの親戚のようなもので、関数はそこで外部に値を返して、終了する代わりに一時停止する。
  • JavaScript の ジェネレータ を極める! - Qiita

    ECMAScript 6(2015年6月に公開され、今もなお比較的新しい JavaScript)の大目玉である イテレータ と ジェネレータ。なかなかに複雑で巨大な仕組みになっていてややこしいです。 そこで今回は ジェネレータ を、順を追って理解できるように解説したいと思います。 Qiita: JavaScript の イテレータ を極める! ←こちらから読むのがオススメです Qiita: JavaScript の ジェネレータ を極める!(この記事) また、実用的なサンプルを「3. 実用サンプル」に示しました。 初めにこちらを見て、何ができるのかを知ってから読み始めるのもオススメです。 (2017年3月現在、オープンなページでの使用はまだ避けたほうがいいかもしれませんが、実装は確実に進んでいます。ECMAScript 6 compatibility table) 1. ジェネレータ、ジェ

    JavaScript の ジェネレータ を極める! - Qiita
    jsstudy
    jsstudy 2019/11/03
    ジェネレータは、イテレータを強力にサポートするものです。見方を変えれば、ジェネレータはもう一つの使い方ができます。それは、自由に途中でいったん停止できる関数という見方です。
  • JavaScriptプログラミング講座【Generator について】

    // ------------------------------------------------------------ // ジェネレーター関数を宣言する // ------------------------------------------------------------ function* GeneratorFunc ( argument1 , argument2 ){ yield 0; } // ------------------------------------------------------------ // 新しい Generator オブジェクトを生成する // ------------------------------------------------------------ var generator0 = GeneratorFunc(); v

    jsstudy
    jsstudy 2019/11/03
    ジェネレーターは生成者を意味します。ジェネレーター関数と呼ばれる命令文を記述し、データを順番に生成できます。実行を途中で中断し、実行を再開する事もできます。Iteratorと同じ方法で順番にデータを列挙できます
  • ジェネレータ

    通常の関数は、単一の値だけを返します(もしくはなにも返しません)。 ジェネレータは、要求に応じて次々に複数の値、場合によっては無限の数の値を返す(“生み出す”)ことができます。それらは 反復可能(iterables) と上手く機能し、データストリームを簡単に作成することができます。 ジェネレータ関数ジェネレータを作成するには、特別な構文構造: function*、いわゆる “ジェネレータ関数” を使用する必要があります。 このようになります:

    ジェネレータ
    jsstudy
    jsstudy 2019/11/03
    通常の関数は、単一の値だけを返します。ジェネレータは、要求に応じて次々に複数の値、場合によっては無限の数の値を返す(“生み出す”)ことができます。それらはデータストリームを簡単に作成することができます。
  • イテレーターとジェネレーター - JavaScript | MDN

    前のページ 次のページ イテレーターとジェネレーターは、コア言語の内部に反復処理が直接的に取り入れられており、for...of ループの動作を簡単にカスタマイズできる仕組みをもたらします。 詳細についてはこちらもご覧ください。 反復処理プロトコル for...of function* と ジェネレーター yield と yield* JavaScript では、イテレーターはシーケンスおよび潜在的には終了時の返値を定義するオブジェクトです。 より具体的に言うと、イテレーターは、次の 2 つのプロパティを持つオブジェクトを返す next() メソッドを持つことによってイテレータープロトコルを実装するオブジェクトです。 value 反復シーケンスの次の値 done シーケンスの最後の値が既に消費されている場合に true となります。done と並んで value が存在する場合、それがイテレ

    イテレーターとジェネレーター - JavaScript | MDN
    jsstudy
    jsstudy 2019/11/03
    ジェネレーター関数は、 function* 構文を使用して記述されます。ジェネレーターの next メソッドを呼び出すことによって値が消費されると、ジェネレーター関数は yield キーワードを検出するまで実行します。
  • ジェネレータ (プログラミング) - Wikipedia

    ジェネレータは、プログラムにおいて、数列の各要素の値などを次々と生成(ジェネレート)し他の手続きに渡す、という機能を持っている手続きである。値を渡す方法としては、コールバックのようにして他の手続きを呼ぶものもあれば、呼び出される度に次々と異なる値を返す関数であることもある。 「呼び出される度に次々と異なる値を返す関数」である場合は、参照透過ではない。イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。ジェネレータの実装としてはコルーチンやcall/ccやマルチスレッドを使う方法が考えられる。また、言語によって詳細が異なるものを「ジェネレータ」と呼んでいる。擬似乱数発生器は、ジェネレータの一例である。 なおyieldというキーワードを使っていればジェネレータ、と取られることもあるが間違いである。 CLU(1975年初出)の歴史を記した "A History o

    jsstudy
    jsstudy 2019/11/03
    ジェネレータは、数列の各要素の値などを次々と生成(ジェネレート)し他の手続きに渡す、という機能を持っている手続きである。「呼び出される度に次々と異なる値を返す関数」である場合は、参照透過ではない。
  • クロージャ - JavaScript | MDN

    function init() { var name = "Mozilla"; // name は、init が作成するローカル変数 function displayName() { // displayName() は内部に閉じた関数 console.log(name); // 親関数で宣言された変数を使用 } displayName(); } init(); init() 関数はローカル変数 name を作成し、それから関数 displayName() を定義しています。displayName() は init() の中で定義されている内部関数で、その関数体の内部でしか利用できません。displayName() 自体はローカル変数を持っていませんが、外側のスコープで宣言された変数にアクセスできるので、displayName() では親関数 init() で宣言された変数 name を

    クロージャ - JavaScript | MDN
    jsstudy
    jsstudy 2019/11/03
    クロージャは、関数とその関数が宣言されたレキシカル環境の組合せ。レキシカル → 変数のスコープはソースコード内の位置によって決定され、入れ子にされた関数は外側のスコープで宣言された変数にアクセスできる
  • 変数スコープ、クロージャ

    JavaScript は非常に関数指向な言語であり、これにより多くの自由があります。ある時点で作成した関数を別の変数にコピーしたり別の関数に引数として渡し、後でまったく別の場所から呼ぶことができます。 私たちはすでに関数がその外(“外側” の変数)にアクセスできることを知っています ですが、関数が作成されたあとで外側の変数を変更すると何が起きるでしょうか?関数は最新の値 or 古い値どちらを取得するのでしょうか? また、関数がパラメータとして渡され、別のコード部分から呼び出される場合、新しい場所での外側の変数にアクセスできるのでしょうか? これらのシナリオやより複雑なシナリオを理解するために、知識を広げていきましょう。 JavaScript では変数を宣言する方法が3通りあります: let, const(モダンな方法),とvar (過去の名残)です。 この記事では、例には let を使用し

    変数スコープ、クロージャ
    jsstudy
    jsstudy 2019/11/03
    クロージャ(closure) は外部変数を記憶し、それらにアクセスできる関数です。JavaScriptにおいては、すべての関数は自然にクロージャです(1つだけ例外があります。それについては "new Function" 構文 で説明します)。
  • JavaScript Primer - 迷わないための入門書

    関数とスコープ 定義された関数はそれぞれのスコープを持っています。スコープとは変数や関数の引数などを参照できる範囲を決めるものです。 JavaScriptでは、新しい関数を定義するとその関数にひもづけられた新しいスコープが作成されます。関数を定義するということは処理をまとめるというだけではなく、変数が有効な範囲を決める新しいスコープを作っていると言えます。 スコープの仕組みを理解することは関数をより深く理解することにつながります。なぜなら関数とスコープは密接な関係を持っているからです。 この章では関数とスコープの関係を中心に、スコープとはどのような働きをしていて、スコープ内では変数の名前から取得する値がどのように決まるかを見ていきます。 JavaScriptのスコープは、ES2015において直感的に理解しやすい仕組みが整備されました。 基的にはES2015以降の仕組みを理解していればコー

    JavaScript Primer - 迷わないための入門書
    jsstudy
    jsstudy 2019/11/03
    JSのクロージャー 最後にこの章ではクロージャーと呼ばれる関数とスコープに関わる性質について見ていきます。 クロージャーとは「外側のスコープにある変数への参照を保持できる」という関数がもつ性質のことです。
  • IT派遣を救いたい

    jsstudy
    jsstudy 2019/11/03
    まずはスコープというものを確認しておきます
  • 私が今までクロージャを理解できなかった理由 - プログラミングを勉強するブログ

    Javascriptを勉強する上で誰もがつまずくと言われるクロージャですが私も例に漏れず理解できないでいました。 さまざまな解説サイトを読んだりサンプルコードを書き換えてみたりして 静的なスコープの言語で利用できる。 関数が終了したあともそのローカル変数が参照できる。 といったクロージャの「仕組み」や「特徴」については分かったものの、もっとも重要ともいえる 「どういう時にクロージャを使えばいいのか」 が分かりませんでした。言いかえると友人がなんて言って悩んでいる時に 「そう言う時はクロージャを使うといいよ」 と言ってあげればいいのか。 例えばプログラムの勉強を始めた友人が 「これと同じ処理もう何回も書いてるんだよ。コピペばっかりしてる気がする」 と言って悩んでいたら 「そこを関数にすればいいんじゃない?」 って教えてあげますよね。 これと同じように友人が 「○○○○○○なんだよ、うまい方法

    私が今までクロージャを理解できなかった理由 - プログラミングを勉強するブログ
    jsstudy
    jsstudy 2019/11/03
    関数終了後もローカル変数を参照できることのメリット1、グローバル変数の節減 メリット2、クロージャを使うと1のメリットを享受しつつ計算量を増やさないことができる
  • package.jsonの中身を理解する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    package.jsonの中身を理解する - Qiita
  • 【初心者向け】NPMとpackage.jsonを概念的に理解する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 npm に初めて触れるときは、package.json がどういう役割をもっているのか、パッケージをインポートするとはどういうことなのかなど分からないことだらけであり、筆者も少しずつ調べては試すことを繰り返した記憶がある。これから Node.js を学ぼうという人にはこのような部分でつまづいてほしくないため、この記事では npm を使う上で必要な概念的知識を説明する。この記事を読めばスムーズに Node.js の学習が始められると思われる。 NPM とは NPM と名のつくものは実は 2 つあり、ひとつはオンライン上のパッケージレ

    【初心者向け】NPMとpackage.jsonを概念的に理解する - Qiita
  • Amazon.co.jp: Node.jsデザインパターン 第2版: Mario Casciaro (著), Luciano Mammino (著), 武舎広幸 (翻訳), 阿部和也 (翻訳): 本

    Amazon.co.jp: Node.jsデザインパターン 第2版: Mario Casciaro (著), Luciano Mammino (著), 武舎広幸 (翻訳), 阿部和也 (翻訳): 本
  • Amazon.co.jp: Webプログラミングが面白いほどわかる本 環境構築からWebサービスの作成まで、はじめからていねいに (N高校のプログラミング教育): 吉村総一郎: 本

    Amazon.co.jp: Webプログラミングが面白いほどわかる本 環境構築からWebサービスの作成まで、はじめからていねいに (N高校のプログラミング教育): 吉村総一郎: 本
  • あなたがnpm installをしてはいけない時 - Qiita

    記事を移転しました。 以下の概要をみて、興味があればご覧ください。 概要 あなたは普段、何気なく npm install を使っていることでしょう。 しかし、 npm install が何をしているのか、実は誤解している人も多いと思います。 記事のタイトルは釣りではないので、どんな時に npm install は問題を起こすのか、説明できない人は以下を読み進めてください。これは多くの開発者が無意識に無視している、とても重要な事項だと思っています。 なお、npm 4.x系以下の方は記事の対象ではありません。 続き -> https://blog.minimalcorp.com/users/jigen/posts/6f325dc9b8a00370b6aedf47a34cb3ce

    あなたがnpm installをしてはいけない時 - Qiita
  • npm vs yarnどっち使うかの話 - Qiita

    記事を移転しました。 概要を読んでみて、気になる方は続きをご覧ください。 結果だけ書くと yarn の方が速くて簡潔です。 また必要な状況はかなり限定的ですがyarnにあってnpmにない機能も存在します。それに関する内容にこの記事で若干触れました。気になる方はご覧ください。 (比較した方法・バージョンとかは下を読んでください。誤りがあれば意見いただけると嬉しいです。) 続き -> https://blog.minimalcorp.com/users/jigen/posts/3c08ecb4391ae4836cd84d27378440ae

    npm vs yarnどっち使うかの話 - Qiita