タグ

JavaScriptと用語に関するjsstudyのブックマーク (27)

  • JavaScriptでエラーの原因となるHoisting(巻き上げ)、その仕組みをGIFアニメで分かりやすく解説

    JavaScriptでエラーの原因となるHoisting(巻き上げ)はなぜ起こるのか、その仕組みについてGIFアニメーションで分かりやすく解説された記事を紹介します。 🔥🕺🏼 JavaScript Visualized: Hoisting by Lydia Hallie 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 JavaScript Hoisting(巻き上げ)の仕組みをGIFアニメで分かりやすく解説 Hoisting(巻き上げ)は、JavaScriptでのエラーの原因をGoogleで検索しても分からず、StackOverflowなどで質問した際に目にする用語の1つです。「そのエラーはHoisting(巻き上げ)が原因で発生している🙃」と言われることがあります。 Hoisting(巻き上げ)とは何のことでしょうか?

    JavaScriptでエラーの原因となるHoisting(巻き上げ)、その仕組みをGIFアニメで分かりやすく解説
  • Polymer - Wikipedia

    Polymer(ポリマー)は、polymer Web Componentsを使用してウェブアプリケーションを作成するためのオープンソースのJavaScriptライブラリである。ライブラリは、Googleの開発者とコントリビューターたちによって、GitHub上で開発が行われている。また、GoogleのMaterial Designを利用したモダンなデザイン原則が、独立したプロジェクトとして実装されている。 Polymerは、Googleの多数のサービスとウェブサイトで利用されている。Polymerを利用しているものとしては、新デザインのYouTube、YouTube Gaming、新デザインの[8]Google Earth、Google I/Oのウェブサイト、Google Play Music、新デザインのGoogleサイト、ウェブ版のAlloが挙げられる[9]。 その他の有名なユーザーには

    Polymer - Wikipedia
    jsstudy
    jsstudy 2019/11/26
    Polymerは、polymer Webコンポーネントを使用してウェブアプリケーションを作成するためのオープンソースのJavaScriptライブラリ。GoogleのMaterial Designを利用したモダンなデザイン原則が実装されている。
  • 歴史から学ぶ現代のフロントエンド

    フロントエンドカンファレンス福岡2019 の資料です。 https://frontend-conf.fukuoka.jp/

    歴史から学ぶ現代のフロントエンド
  • JAMstack - Google 検索

    Jamstackは、ウェブサーバーを使用せずにウェブサイトを運用する構成です。従来のサーバーサイドやクライアントサイドの方式に対する課題を解決するために考案され、 ...

  • 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

    « 前のページ 次のページ » コレクション内の各アイテムに対する処理は非常に一般的な操作です。JavaScript では簡単な for ループから map()、filter() にいたるまで、コレクションに対する反復処理の複数の方法を提供します。 イテレーターとジェネレーターは、コア言語の内部に反復処理が直接的に取り入れられており、for...of ループの動作を簡単にカスタマイズできる仕組みをもたらします。 詳細についてはこちらもご覧ください: Iteration protocols for...of function* と ジェネレーター yield と yield* JavaScript では、イテレーターはシーケンスおよび潜在的には終了時の戻り値を定義するオブジェクトです。 より具体的に言うと、イテレーターは、次の 2 つのプロパティを持つオブジェクトを返す next() メソッ

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

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

    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でラムダ計算の仕組みを学ぶ教材 - JavaScript勉強会

    関数型プログラミングの理解を深めるために、OCamlのを読んでいます。 プログラミングの基礎 (Computer Science Library) 作者: 浅井健一 出版社/メーカー: サイエンス社 発売日: 2007/03/01 メディア: 単行 購入: 17人 クリック: 409回 この商品を含むブログ (127件) を見る 「簡約」について調べていたら、分かりやすい説明の記事がありました。 tarao.hatenablog.com ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を

    JavaScriptでラムダ計算の仕組みを学ぶ教材 - JavaScript勉強会
    jsstudy
    jsstudy 2019/08/03
    簡約(ラムダ計算の実行)の様子を確認できるツール LambdaJS
  • 2019年版 最先端のフロントエンド開発者になるために学ぶべきこと - Qiita

    こちらの記事は、『Learn to become a modern Frontend Developer in 2019』の和訳になります。 投稿は転載であり、記事はこちらになります。 はじめに 新年になって以前書いた記事を少し簡潔にして理解しやすいように書き直してみました。この文章に以前私が書いた文章と違ったことが書いてあったり、少し矛盾する内容が見つかってもあまり気にする必要はありません。 昨年私が書いた記事はGitHubで公開しています。 Web開発は絶えず変化する分野です - 今日私たちがWebサイトを構築する方法は、2~3年前のやり方とは全く違ってきています。利用できるツールが沢山あり、新しいツールも毎日出てくるので、ウェブ開発者はいつもどのツールを使えばよいのか迷ってしまいます。 私は、ウェブ開発に係るフロントエンド、バックエンド、または運用を学びたいと思う人を対象にしたツ

    2019年版 最先端のフロントエンド開発者になるために学ぶべきこと - Qiita
    jsstudy
    jsstudy 2019/07/23
    Reactについて学んだら、次はPWA(Progressive Web App)について学ぶ必要があります。RAIL(Response, Animation, Idel and Load)モデルとPRPL(Push, Render, Pre-cache、Lazy Load)パターンについても学んでください。
  • Ramda.jsのLensとは? - JavaScript勉強会

    JavaScript関数型プログラミング」を読んでいたら、意味がよく分からない用語が出てきたのでメモ。 jsstudy.hatenablog.com レンズ (p.48) レンズ(Lenses)と呼ばれる関数型のアプローチ レンズは、オブジェクトの変更を普遍的に一括管理する最良の選択肢です。 (純粋な)関数参照とも呼ばれるレンズは、状態を持つデータ型の属性を不変的にアクセスし操作できる関数型プログラミングのソリューションです。 レンズの内部的な動作はコピーオンライトに似ており、状態の管理と複製を適切に処理できる内部ストレージコンポーネントを利用しています。 しかし、レンズを自分で実装する必要はありません。 関数型JavaScriptライブラリRamdaの実装を利用できます。 JavaScriptでデータを可変ではなく不変で扱いたい場合、Ramda.jsという関数型ライブラリーのLensと

    Ramda.jsのLensとは? - JavaScript勉強会
    jsstudy
    jsstudy 2019/05/01
    JavaScriptで関数型プログラミングを行う場合、データを不変(immutable)にして扱いたい。その1つの方法として、Ramda.jsのLensという機能を使うと便利。Lensは元々Haskellのパッケージからアイデアから取ってきたものらしい。
  • JavaScript で関数型プログラミングをするの? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 脳みそダンプ #01. 不変性 JavaScriptでは ある程度不変性を意識して書ける。具体的には Array や String の slice, concat, map, filter、 ...(スプレッドシンタクス)、Object.assign、あとJSON.stringify & JSON.parse(筋悪?)。ただ、どうしても冗長な書き方になるうえ、うっかりするとすぐにシャロ―コピーになってしまう。JavaScript で不変性を志向した書き方をするのは難しいといわざるを得ない。 解決策の方向性は二つある。生のArray, O

    JavaScript で関数型プログラミングをするの? - Qiita
    jsstudy
    jsstudy 2019/04/30
    #01.不変性 JavaScriptで不変性を志向した書き方をするのは難しい 解決策の方向性は二つある。Ramda.js方式とImmutable.js方式。Ramda 方式ではArray,Objectに対するディープコピー機能を提供するだけでなく、レンズ機能を提供する