タグ

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

  • Vue.js製フレームワークNuxt.jsではじめるUniversalアプリケーション開発

    Vue.js製フレームワークNuxt.jsではじめるUniversalアプリケーション開発 花谷拓磨 Vue.jsでUniversalなSPAを開発できるフレームワークであるNuxt.jsのバージョン 1.0のリリースがいよいよ近づいてきました。 稿では、シングルページアプリケーション(以下 SPA)開発によって生じた問題を解決するために生まれたサーバーサイドレンダリング (以下 SSR)を中心に、Vue.jsでの開発を強力にサポートするNuxtについて、その魅力と基的な使い方をご紹介いたします。 Nuxt.jsとは? Nuxt.js(ナクストと読みます)はReact.jsベースのSSR用フレームワークであるNext.jsに触発されて作成された、Vue.jsベースのフレームワークです。 特にUIの描画サポート に主眼をおき、SSRをはじめとした様々なサポートを行ってくれるものとなります

    Vue.js製フレームワークNuxt.jsではじめるUniversalアプリケーション開発
  • jQuery から Vue.js へのステップアップ - Qiita

    はじめに 最近耳にする Vue.js(ビュージェイエス) ってどんなもの? jQuery とどう書き方違うの?とか、jQuery でやってたこういう事って Vue.js だとどうやるの?jQuery しか使ってないけど Vue.js も使ってみたいなぁ~と思っている人向けの小難しいことは省いた記事です。私もそちら側から来たものです。 Vue.js 日公式ページ(日語翻訳率が半端ないと評判) もともと「jQuery から Vue.js への移行」というタイトルでしたが、それだと jQuery を完全にやめる、的なニュアンスになってしまうので、少し変更しました🐹 jQuery と Vue.js の違い jQuery は、セレクタ操作に特化したライブラリで HTML の一部をちょっとだけ弄るには手軽に扱えます。更新のたびにセレクタから要素を探して操作をするため、複数の UI を連携させるよ

    jQuery から Vue.js へのステップアップ - Qiita
  • V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス | POSTD

    数週間前に、JavaScriptが実際どのように動いているかを掘り下げて紹介する記事の連載を始めました。JavaScriptがどのような機能で構成されていてそれらがどのように組み合わさって機能していくのかを知ることによって、さらに良いコードやアプリケーションを作ることができるのではないかと思ったからです。 連載の1回目では 、エンジンやランタイム、コールスタックについての概要を紹介しました。2回目となる今回は、Google V8 JavaScriptエンジンについて細かく説明していきます。また、より良いJavaScriptコードの書き方、すなわち私たちの開発チーム SessionStack がプロダクトを開発する際に意識しているベストプラクティスについても併せて紹介します。 概要 JavaScriptエンジン とはJavaScriptコードを実行するプログラムまたはインタプリタのことです。

    V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス | POSTD
  • これさえ見れば脱・JavaScript初心者!海外のYouTube動画を一挙大公開 - paiza times

    どうも、まさとらん(@0310lan)です! 今回は、基的なJavaScriptプログラミングが出来るようになった人向けに、さらなるステップアップを目指せる「YouTubeチャンネル」を厳選してまとめてみました! 海外のプログラミング系YouTube動画は、有料でもおかしくない「質」の高さと豊富なコンテンツ量に魅力があり、確実にレベルアップが期待できるのでぜひ参考にしてみてください。 ■JavaScriptの勘所を勉強できるYouTubeチャンネル! 【 Fun Fun Function 】 プログラミング動画とは思えない超ハイテンションなノリで、JavaScriptを学ぶうえで欠かせない勘所を分かりやすく教えてくれるのがコチラのチャンネル! 「Spotify」の開発にも携わっていたというプログラマーの彼は、得意のJavaScript言語を分かりやすく伝えることに情熱を注いでおり、それは

    これさえ見れば脱・JavaScript初心者!海外のYouTube動画を一挙大公開 - paiza times
  • 関数型プログラミングを追う日々 - JavaScript勉強会

    最近、関数型プログラミングの基礎知識を学ぶことに時間を割いています。 きっかけは、「関数型プログラミングの基礎 JavaScriptを使って学ぶ」というでした。 jsstudy.hatenablog.com Haskellに寄り道 「関数型プログラミングの基礎」を読んでいると、ちょいちょい「Haskell」の話が出てきます。 以前、話題になってたのでHaskellのを読んでみましたが、そのときはあまりよく分かりませんでした。(使う場面もなかったですw) 改めて、「Haskellって何だったんだろう?」と思って読み返してみると、「なるほど、そういうことだったのか~」と新たな気付きが得られました。 自分のスキル不足のため、Haskellで実用的なアプリを作る機会はないだろうけど、それでもHaskellは良くできたパズルみたいなかんじで、ちょっとしたコードを書いて練習してみるだけでも楽しめま

    関数型プログラミングを追う日々 - JavaScript勉強会
    jsstudy
    jsstudy 2017/09/06
    関数型プログラミングの作法を学ぶためにHaskellに寄り道。「JavaScript Ninja」→JavaScriptを使いこなすためには「関数」の使い方が重要、とのこと。
  • Node.jsでES2015のアロー関数を使う方法 - JavaScript勉強会

    「関数型プログラミングの基礎 JavaScriptを使って学ぶ」のコードをVisual Studio Code上で試そうとしたら、エラーメッセージが表示されて動きませんでした。 原因は、Node.js v0.12.0を使っていたのですが、「--harmony」オプションを有効にしてNodeを動作させないと、JavaScript ES2015のアロー関数(=>)が使えないことでした。 解決策の1つは、Node.jsのバージョンを上げることでした。 以下、解決方法をメモ。(備忘録) アロー関数とは? Node.jsの歴史 --harmonyオプション Node.jsのバージョンアップ エラー解決 アロー関数のサンプルコード Node.js v0.12.0(harmonyモードなし)で、ES2015のアロー関数が動かない! Node.js v6.11.2で、ES2015のアロー関数が動いた! ま

    Node.jsでES2015のアロー関数を使う方法 - JavaScript勉強会
    jsstudy
    jsstudy 2017/08/19
    Node.jsでES2015の新機能を使うなら、バージョン4以降が望ましい? v.0.12.xでES2015の新機能を使う場合、「--harmony」オプションを指定する。 (面倒ならv6.x~を使えばOK)
  • JavaScript ES2015の「末尾再帰」最適化 - JavaScript勉強会

    JavaScriptの勉強で、ES2015の「アロー関数」を使う必要が出ました。 Visual Stuidio Code+Node.jsでES2015のJavaScriptコードを動かしていますが、ブラウザーでES2015はもうちゃんと動くのでしょうか? Google Chromeなど、ブラウザーのES2015対応状況を調べてみました。 最新のモダンブラウザーは、ほぼES2015に対応してましたが、「末尾再帰の最適化」という機能だけ未対応のブラウザーが多かったです。(2017年8月現在) ECMAScript6(ES6、ES2015)のブラウザー対応一覧表 末尾再帰とは? 末尾再帰の最適化 末尾再帰の解説記事 関数型プログラミング まとめ ECMAScript6(ES6、ES2015)のブラウザー対応一覧表 各ブラウザーのES2015対応状況が一覧表になってました。 ECMAScript

    JavaScript ES2015の「末尾再帰」最適化 - JavaScript勉強会
    jsstudy
    jsstudy 2017/08/19
    モダンブラウザーのES2015対応状況→ほとんどOKだけど「末尾再帰」最適化(TCO)だけ対応が遅れている。(対応してたのはSafariだけ) TCOが必要なければ、ES2015はトランスパイルせずにそのままブラウザーで動かしてもOK?
  • Node.jsのバージョンによる違い - JavaScript勉強会

    JavaScriptの練習で、Node.jsを使っています。 Node.jsは、バージョンによって使える機能が違います。 Node.jsのバージョンの違い~Node.jsの歴史についてメモ。(備忘録) Node.jsのバージョン一覧 バージョンによる違い 安定版(LTS) harmonyモード(ハーモニーオプション) Node.jsのバージョン変更 (1) コマンドプロンプト(黒い画面)を起動します。 (2) インストール可能なversionの一覧を表示します。 (3) 指定したversionをインストールします。 (4) 指定したversionを使用します。 (5) Node.jsのバージョンを確認します。 まとめ Node.jsのバージョン一覧 Node.jsの公式サイトで、バージョンの一覧が公開されていました。 リリース一覧 | Node.js 「Node.js 6.x」、「Node

    Node.jsのバージョンによる違い - JavaScript勉強会
    jsstudy
    jsstudy 2017/08/19
    Node.jsはv4.x~では、ES2015の新機能(アロー関数など)がデフォルトで使えるようになっている。 古いv0.12.xを使っている場合、新機能を動作させるには、--harmonyオプションの指定が必要なので注意!?
  • Node.js — Node.js Releases

    Node.js Releases Major Node.js versions enter Current release status for six months, which gives library authors time to add support for them. After six months, odd-numbered releases (9, 11, etc.) become unsupported, and even-numbered releases (10, 12, etc.) move to Active LTS status and are ready for general use. LTS release status is "long-term support", which typically guarantees that critical

    Node.js — Node.js Releases
    jsstudy
    jsstudy 2017/08/19
    バージョン一覧 リリース日
  • WindowsのコマンドプロンプトでNode.jsの対話モードを終了する方法 - JavaScript勉強会

    Windows7でNode.jsを使い、JavaScriptの練習をしています。 コマンドプロンプト(黒い画面)で、Node.jsの対話モードを起動&終了する方法をメモ。 Node.jsのインストール Node.jsの対話モード(REPL)とは? Node.js 対話モードの起動 Node.js 対話モードの終了 まとめ Node.jsのインストール 前提:WindowsパソコンにNode.jsをまだインストールしてない場合は、インストールしておきます。 (参考) nodistでWindowsにNode.jsをインストールする 【読書メモ】 - JavaScript勉強会 nvm(Node Version Manager)でWindowsにNode.jsをインストールする - JavaScript勉強会 Node.jsの対話モード(REPL)とは? JavaScriptの実行環境の1つであ

    WindowsのコマンドプロンプトでNode.jsの対話モードを終了する方法 - JavaScript勉強会
    jsstudy
    jsstudy 2017/08/19
    Node.jsのREPL Ctrl+Cで終了
  • ECMAScript 2015 Language Specification – ECMA-262 6th Edition

    Standard ECMA-262 6th Edition / June 2015 ECMAScript® 2015 Language Specification This is the HTML rendering of ECMA-262 6th Edition, The ECMAScript 2015 Language Specification. The PDF rendering of this document is located at https://ecma-international.org/wp-content/uploads/ECMA-262_6th_edition_june_2015.pdf. The PDF version is the definitive specification. Any discrepancies between this HTML ve

    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • Tail call optimization in ECMAScript 6

    Update 2018-05-09: Even though tail call optimization is part of the language specification, it isn’t supported by many engines and that may never change. The ideas are still interesting, however and explained in this blog post. ECMAScript 6 offers tail call optimization, where you can make some function calls without growing the call stack. This blog post explains how that works and what benefits

    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • All About Recursion, PTC, TCO and STC in JavaScript

    All About Recursion, PTC, TCO and STC in JavaScript 8th of May, 2017 — Lucas Fernandes da Costa at Florianópolis, Brazil 🇧🇷 Recently everyone seems to be really excited about functional programming and its concepts. However, many people don’t talk about recursion and, especially, about proper tail calls, which is really important when it comes to writing clean and concise code without exploding

    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • 明示的な末尾呼び出し最適化構文が実装された - JS.next

    概要 ES2015で特定の形で関数呼び出しがされている場合に末尾呼び出し最適化が行われるよう定められたが、 パフォーマンスや、デバッグなどの実装上の問題が浮上したため、それを解決するための新たな構文がV8で実装されたが、その後廃止された 説明 具体的には、strictモードの是非を問わず、「 return continue fn() 」という形での呼び出しについて最適化が有効になる。 (詳細は明示的でない末尾呼び出し最適化の記事をご覧ください) 最適化が効く例: function fn( n ) { 'use strict' if ( n <= 0 ) { return 'done!' } return continue fn( n - 1 ) } fn( 1e6 ) // "done!" 最適化が効かない例: function fn( n ) { 'use strict' if ( n

    明示的な末尾呼び出し最適化構文が実装された - JS.next
    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • 末尾呼び出し最適化が実装された - JS.next

    概要 ある関数Aから別の関数Bを呼び出すとき、処理系は後で戻って来れるように一旦Aの状態を保存し、関数Bの処理に入る。 これが問題になるのは再帰の時で、数万回程度の再帰でスタックが一杯になり、エラーとなってしまう。 しかし、もし関数B呼び出しの際に、関数Aに戻ってきて処理を続ける必要のない形で呼びだされていれば、 状態の保存を省略して関数Bに移行する最適化が可能であり、ES2015でその詳細が定義されることとなった。 例 具体的には、strictモードの関数で、「 return fn() 」という形での呼び出しについて最適化が有効になる。 最適化が効く例: function fn( n ) { 'use strict' if ( n <= 0 ) { return 'done!' } return fn( n - 1 ) // この関数がする処理はこれ以上ない } fn( 1e6 ) //

    末尾呼び出し最適化が実装された - JS.next
    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • 末尾再帰による最適化 - Qiita

    はじめに ES6 (EcmaScript 6)を試そうと、Babelのドキュメントを読んでいたところ、末尾呼び出し(Tail Call)の最適化をしていることにびっくり。公式リリース(2015年6月)から3ヶ月あまり経ってはいますが、ES6が末尾呼び出し最適化を仕様としてサポートしていることをようやく知りました。 現状で末尾呼び出し最適化をサポートしているブラウザはなく(ブラウザやaltJSなどのES6互換表を参照)、唯一、ES6からES5へのトランスパイラであるBabelのみが部分的(直接的な末尾再帰のみ)ではありながらサポートしているようですね。 今回の記事では、来たるES6時代(いまさらの感はありますが)に備えて、末尾再帰とその最適化について簡単に解説した上で、Babelを利用して実際にJavaScriptでの末尾再帰の最適化を実験してみたいと思います。 ざっくり概要 再帰関数 は関

    末尾再帰による最適化 - Qiita
    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • JavaScriptの末尾呼び出し最適化(TCO) - 30歳からのプログラミング

    JavaScriptには、再帰が実装されている。 再帰とは、関数のなかでその関数自身を呼び出すこと。 下記のrecursion()では、再帰を行っている。 function recursion(num, limit){ console.log(num); if(num === limit){ return; }; num++; recursion(num, limit); }; recursion(0, 10);を実行すると、0から10の数字が順番に表示される。 仮引数numがlimitに到達するまでrecursion()は呼ばれ続ける。 だが、limitの数を大きくすると、途中でエラーになりプログラムが終了してしまう。 function recursion(num, limit){ console.log(num); if(num === limit){ return; }; num++

    JavaScriptの末尾呼び出し最適化(TCO) - 30歳からのプログラミング
    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • 末尾再帰 - Wikipedia

    一般に再帰呼び出しが可能な言語では、サブルーチン呼び出しのたびにスタックに呼び出し先から戻るための情報を保存する。そのため再帰が深くなりすぎるとスタックオーバーフローでプログラムが異常終了する。 そのような場合、次のようにループに変換して回避する。 { 変換前 } function F (a1:T1, a2:T2, ..., an:Tn) : T0 begin P ; return func (b1, b2, ..., bn) ; end ; { 変換後 } function F (a1:T1, a2:T2, ..., an:Tn) : T0 begin loop P ; a1 := b1 ; a2 := b2 ; : an := bn ; end loop ; end ; { Ti は型、P は手続き、bi は値または a1~an に対する副作用を伴わない式である。 それ以外の識別子は変

    jsstudy
    jsstudy 2017/08/17
    各ブラウザーのES2015対応状況 末尾再帰の最適化の対応が遅れている? SafariはOKだった(2017/08)
  • 複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ

    AWS Summit Hong Kong 2025: Reinventing Programming - How AI Transforms Our Enterprise Coding Approach

    複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ
    jsstudy
    jsstudy 2017/08/05
    設計の知識(用語) 機能の分割方法 Javaのノウハウを利用 MVVMでVueを使う 副作用はFRPで分離/管理 Vueの使い方が参考になった!
  • 関数型プログラミングはまず考え方から理解しよう

    ※仕様の細かいツッコミはご勘弁を…。 オブジェクト指向で解く みんな大好きオブジェクト指向では、物単位で考えます。言わずもがなですね。やり方はいろいろあると思いますが、まずお弁当という単位で集めると 唐揚げお弁当クラス 状態 主名 唐揚げ個数 値段 … 振る舞い: つまみい() 値段取得() 唐揚げ個数取得() … のような感じで、弁当に必要な要素と必用な処理をひとまとまりにして扱うというのがオブジェクト指向です。 お弁当スーパークラスを作って継承で唐揚げ弁当クラスを、というように拡張を考えた設計にするというのも汎用性が必要な場合は良いと思います。 では早速コードにしてみましょう。 言語はJavaScriptにしています。 (function(){ window.onload=function(){ ////////////////// // クラスの定義 // ///////////

    関数型プログラミングはまず考え方から理解しよう
    jsstudy
    jsstudy 2017/07/27
    関数型にするには ・データと振る舞いを分離させる ・外部に依存しないよう関数の入出力を定める ・再帰やイテレーションメソッドを使い、副作用を取り除く テスト全般が楽になります。