タグ

関連タグで絞り込む (278)

タグの絞り込みを解除

javascriptに関するakishin999のブックマーク (3,287)

  • ES Modules と Node.js について - from scratch

    書こう書こうと思いながらこのタイミングまでのがしてしまいました。 今一番 Node.js の中で hot な discussion の一つと言えるでしょう、『ES Modules が Node.js の中でどうなるか』です。 ES Modules 現況 ES2015 が発刊されてそろそろ一年です。 ES2015 にある機能は Node.js v6でも 93% 程度カバーされています。モダンブラウザでも大体が90%を超えています。しかし、 ES Modules だけはまだどのブラウザも実装しきれていません(kangax compat table は ES Modules は省かれてます)。 そもそも ECMAScript 2015 自身で定義されたのは構文だけなので、構文はともかく、どうやってモジュールを取ってくるかという Loader の部分がまだ決まりきっていません。 https://w

    ES Modules と Node.js について - from scratch
  • 既存のコードの理解が捗るChrome DevToolsの使い方 - kitak blog

    jQuery系ライブラリによるDOM操作が中心のプロジェクトにがっつり機能を追加する機会があった。 そのJavaScriptのコードは他の人から引き継いだコードで、一応引き継ぎ時にディレクトリ構成、設計、実装方針について共有を受けたが、それでもいざ手を入れようとすると自分自身のコードの理解が進んでおらず「えーっと...」となってしまった。 上記以外にも、長年、多くの人が触れてきたJavaScriptのコードに機能を追加する、修正するのはなかなか難しいのではないか、と思う。最初は、ちょっとしたユーザビリティの向上のために書かれたスクリプトが、気がつけば多数のDOM操作、至る所で宣言される変数、どこから実行されるか分からない関数群で無秩序に膨れ上がり、頭を抱えることになる(そうならないようにするのがウェブフロントエンジニアがいるひとつの理由ですが…)。 これらのケースでは、まずは修正、あるいは

    既存のコードの理解が捗るChrome DevToolsの使い方 - kitak blog
  • npmで同じライブラリの複数バージョンをインストールして使う方法

    追記: [email protected]で別のパッケージを特定のパッケージ名で指定できるpackage aliasesが追加されました。 rfcs/0001-package-aliases.md at latest · npm/rfcs 注意: この手法はnpm ciで壊れてる場合があります npm ci fails with transitive local packages - 🐞 bugs - npm forum Add support for ESLint v2 by Daniel15 · Pull Request #107 · fkling/astexplorerを見ていて、一つのプロジェクト内で複数のバージョンの同じライブラリを使う面白い方法が使われてたのでメモです。 前述したAST explorerの場合だと、ESLint@1とESLint@2の両方に対応したPlaygr

    npmで同じライブラリの複数バージョンをインストールして使う方法
  • Rebass - Reactで使えるUIコンポーネント集

    ユーザ向けに使うライブラリを使いたいと思うかどうかは、UIが優れているかどうかに大きく左右されます。特にBootstrapが出てきてから、その傾向が強くなっているように感じます。 今回はReactと組み合わせて使うUIライブラリRebassを紹介します。実に57種類(執筆時点)もある、UIライブラリです。 Rebassの使い方 スクリーンショットを多めに、主立ったUIコンポーネントを紹介します。まずはアロー。 アバター。 ラベル。 ブロック。 引用。 パンくず。 ボタン。 丸形ボタン。 ドーナッツ型。 YouTubeの埋め込み。 フォームもあります。インプット。 パネル。 プログレスバー。 レーティング。 ウィザード風に。 スイッチ。 テーブル。 ツールチップ。 Rebassはこの他にもたくさんのUIコンポーネントが揃っています。これだけあれば、Webサイトを自由に作成できることでしょう。

    Rebass - Reactで使えるUIコンポーネント集
  • JavaScript の原理:クロージャの真実 - Qiita

    ECMAScript 5.1 を前提に JavaScript のクロージャの原理をメモっとく。クロージャの真実はこれ。 レキシカル環境で検索しても説明がほとんど出てこない。誰かが説明してくれたらいいのになと思ってたので、厳密さには欠けるかもしれないが記事にしてみることにした。ECMAScript の仕様によって実現されているクロージャを理解する価値はきっとある。 クロージャでカウンターの例 下記のコードはクロージャでカウンターを作る例。加算されていく var n ってどこに存在し続けるのか?この記事ではそういう疑問を解決しよう。 function createCounter() { var n = 0; return function() { return n++; } } var count = createCounter(); print(count()); // 0 print(co

    JavaScript の原理:クロージャの真実 - Qiita
  • jQueryで楽になる部分、楽にならない部分、顧客が本当に必要だったもの - Qiita

    俺も昔はお前のような jQueryスパゲッティジェネレーターだったのだが、膝にReactを受けてしまってな… 基的な方針 とくにライブラリ設計者において、小さなモジュールを単機能で分割する以上、ライブラリ設計者は可能な限り依存を減らすことを求められます。node環境ならdependency hellの回避のため、フロントエンド環境ならファイルサイズを減らすためです。 ライブラリ設計者ならずともコードのポータビリティを維持するため、できるだけライブラリに依存しないコードを書くのが望ましいです。 Githubみてる限り、最近書かれるJSのライブラリの多くはjQuery非依存です。ユーザーから見る限りは、jQueryElement渡すかHTMLElement使うかぐらいの違いですけどね。 また、Angular, React等のSPAをスクラッチで設計する場合、気づいたらjQueryを使っていな

    jQueryで楽になる部分、楽にならない部分、顧客が本当に必要だったもの - Qiita
  • JavaScript(ES2015)でvarやletを使う必要はほぼ無い - id:anatooのブログ

    ES2015でvarやletを使う場面はほとんど無いので、まずconstを使う。constだとダメな場合にはletを使う。 背景 ES2015では、変数を宣言するための文法としてconstとletが導入された。 const foo = 'foo'; let bar = 'bar'; constは再代入できない変数を宣言できる。letは再代入できる変数を宣言できる。 const foo = 'foo'; foo = 'hoge'; // ERROR let bar = 'bar'; bar = 'hoge'; // OK あれ、じゃあvarとletは同じなの?っていうとそうではなく、letやconstはvarとは違って、関数スコープよりも細かなブロック単位のスコープを提供する。例えばconstやletを使うと、if文やfor文などのブロック中でのみ有効な変数を宣言できる。 で、プロジェクト

    JavaScript(ES2015)でvarやletを使う必要はほぼ無い - id:anatooのブログ
  • JavaScriptユーザのための関数型プログラミング(後編) | POSTD

    この記事の前編はこちら: JavaScriptユーザのための関数型プログラミング(前編) 遅延評価 遅延評価 は、 サンク や ジェネレータ などのもっと具体的な概念をカバーする一般的な用語の一種です。遅延評価は、その言葉が表すとおりのことを行います。つまり、値が必要になるまで評価しません。可能な限りずるずると、先延ばしにします。例えば、洗わなければならない器が大量に、もしかすると無限にあるとします。器を全て流しに置いて一度に洗うのではなく、ゆっくり、一度に1つずつ取って洗うのに似ています。 遅延評価の質を少しでも理解しやすくするために、Haskellを使って説明したいと思います。まず、 プログラムがどのように評価を行うか を理解する必要があります。皆さんが慣れているほとんど全ての言語は、 最内簡約 を用いています。最内簡約とは、次のようなものです。

    JavaScriptユーザのための関数型プログラミング(後編) | POSTD
  • jQueryは必要ない(You Don't Need jQuery)

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    jQueryは必要ない(You Don't Need jQuery)
  • JavaScriptユーザのための関数型プログラミング(前編) | POSTD

    私が関数型プログラミングについて度々耳にするようになったのは、数カ月前からです。でも当時は、それが何なのか見当もつかず、単なるバズワードだと思っていました。皆さんの中にも、そのような方は多いでしょう。それ以来、私は関数型プログラミングについて深く学び、この言葉を日々聞いてはいるものの内容を理解していない初心者の方のために、分かりやすく説明しようと思い立ちました。 関数型プログラミング言語の話になると、「 Haskell と Lisp は どちらが優れているのか 」という 議論 が 白熱する 傾向にあります。HaskellとLispはどちらも関数型言語ですが、実際には大きな違いがあって、それぞれに長所と短所があります。その具体的な内容については、この記事を読み終える頃には深く理解していただけると思います。この2つの言語には、それぞれから派生した言語があります。その中で恐らく皆さんが耳にしたこ

    JavaScriptユーザのための関数型プログラミング(前編) | POSTD
  • あのライブラリは何故誕生したの?のまとめ - Qiita

    はじめに 最近、フロントエンドのライブラリ乱立問題について盛り上がってました。 自分はnobkzさんの以下の文に全てがまとまっていると思います。 僕の最初の違和感は、「技術的な流行り」に乗ることに何の価値があるのだろうか?ということである。もちろん、最新のツールやフレームワークはより何かが良くなってるかもしれない。しかし、 それをあなたのプロジェクトで採用するには何の価値があるだろうか? 「最近のフロントエンドへの違和感 - nobkzのブログ」より 裏を返せば、新しいライブラリの内容、特に「どのような問題を解決するためにこのライブラリが生まれたのか」という思想を把握しておくことは重要だと言えます。 つまりは、 "How?(ライブラリの使い方)" よりも "Why?(なぜそのライブラリが必要なのか)" を学んでおこう ということです。この記事では どのような既存の問題・要求を どう解決して

    あのライブラリは何故誕生したの?のまとめ - Qiita
  • フロントエンドへの複雑化について、一つの視点 - mizchi's blog

    これらの件 最近のフロントエンドへの違和感 - nobkzのブログ 日のWebエンジニアの大半が、変化に対応しきれなくなっている件について。 - 日々、とんは語る。 前提 去年は勝手Reactエヴェンジェリスト(自称)として、日に複雑化するフロントエンド技術海外の動静を紹介をし続けていた。 僕としても、フロントエンドは複雑化してると思ってるし、それは「目的の複雑化に対して必要なもの」だったと思っている。ここでいう目的とはSPAの構築であって、普通のウェブサイトは含んでいなかったが、普通のウェブサイトも当たり前のようにリッチ化目指しているのが現在なので、境目は曖昧ではある。 僕もフロントエンドの複雑化がだれにでも必要なものだとは思っていない。が、定期的に情勢を整理して、交通整理するのを心がけてきたし、春からはじめるモダンJavaScript / ES2015 - Qiita みたいな記

    フロントエンドへの複雑化について、一つの視点 - mizchi's blog
  • Reactコンポーネントをnpmパッケージとして開発する - Hatena Developer Blog

    こんにちは!ブログチームの id:amagitakayosi です。 今回は、業務で書いた小さなReactコンポーネントをnpmパッケージとして分離した話をします。 今回公開するパッケージ 実装方針 なぜnpmパッケージにするのか 他のコンポーネントの影響で壊れることを防げる アドホックな修正の積み重ねで複雑になることを防げる プロジェクトのコードを削減できる デメリット Babelなパッケージのディレクトリ構成 実装 npmの注意点 reactはpeerDependenciesに入れる npm link を用いてローカル開発する場合、npmはpeerDependenciesを解決できない browserify-shimを利用する場合 npm publish 次回予告 追記 今回公開するパッケージ www.npmjs.com 今回は「無限スクロール」のためのReactコンポーネントを作

    Reactコンポーネントをnpmパッケージとして開発する - Hatena Developer Blog
  • SPAで動画を使って大ヤケドした話 - Qiita

    tl;dr 気軽に removeChild するもんじゃない。 フレームワーク(Riot.js)は悪くない 概要 動画メインの小規模サイト(厳密にはSPAと言わないかも) スペック 動画は YouTube IFrame API と一部に video要素 を使用 フロントのフレームワークは Riot.js URL制御はRiot.jsのルータを使う バックエンドはSinatra(この記事には関係ない) YouTube IFrame APIで起こった問題 iframeをDOMツリーから切り離すとYouTubeのエラー頻発 <youtube> <iframe if={ page == 'hoge' } id="player" src="~" /> <script> routing (path) { this.page = path } riot.route(this.routing) onRead

    SPAで動画を使って大ヤケドした話 - Qiita
  • JavaScript作業自動化ツール「Grunt 1.0.0」が登場。約2年もの開発停滞から復活

    Webサイトやアプリケーション開発で発生する作業を自動化してくれるツール「Grunt」の正式リリースとなる「Grunt 1.0.0」がリリースされました。 Gruntは、いわゆるビルドツールやタスクランナーと呼ばれるソフトウェアの1つで、Node.jsをベースにしたオープンソースとして開発されています。 JavaScriptで自動化したい作業を記述でき、また多くのプラグインによって一般的な作業の多くを簡単に自動化できます。例えば特定のディレクトリを監視し、そこに保存されたファイルを自動的に処理する、といったことが可能です。 特にWebサイトやWebアプリケーション開発で発生するタスク、例えばJavaScriptファイルのミニファイ(最小化)、自動ユニットテストの実行、文法チェックなどでよく使われています。 昨年jQuery Foundationに加入し、復活したGrunt Gruntは20

    JavaScript作業自動化ツール「Grunt 1.0.0」が登場。約2年もの開発停滞から復活
  • 10年のツケを支払ったフロント界隈におけるJavaScript開発環境(2016年4月現在)。 - 日々、とんは語る。

    2015年はCSSが普及した以来となる10年に1度のフロントエンド大変革期で、それまでのツケが一気に回ってきたと個人的に感じていました。目まぐるしく状況が変化していきましたが、2016年になり、個人的にだいぶ落ち着いてきたと感じているので、ここらへんでまとめておきたい思います。 最初に結論を書いておくと、 『React + Redux + react-router + material-ui + axios + ES2015 + Babel + webpack + ESLint + Airbnb JavaScript Style Guide』 という組み合わせが、いま僕の採用しているJavaScriptの環境です。 主要ライブラリは React A JavaScript library for building user interfaces | React 去年、一気に普及したReact

    10年のツケを支払ったフロント界隈におけるJavaScript開発環境(2016年4月現在)。 - 日々、とんは語る。
  • フロントエンドで使ってるものがあまり変わってない - No Regrets in Bathing

    自分のスタックはあまり変わっていない。ほとんど10年のツケを払っていない。学習能力が低いせいでもあり、選んだスタックがバージョンを重ねている成果でもある。 毎回使う フレームワーク:Vue.js 消耗、などの意見が散見されたが、べつに今でも便利に使えている。 browserifyやwebpackがあれば便利だけど、なくてもいい、ってバランスが好き データフローは特に考えない。状態がそこにあるので書き換えれば良い。 あまり頭を使わなくていいのが助かる Reactの考え方は好きなのだけど、よっしゃFluxやるぞって気持ちにはならず、Reactのみでよしなにやるソリューションが広まったらいいなと思う。 ビルドシステム: browserify / watchify substackの作るものはどれも品質が高いので、もうsubstack製品だけ使っていればいいやという気持ちになりがち。余計な処理が全

    フロントエンドで使ってるものがあまり変わってない - No Regrets in Bathing
  • JavaScript で画像をリサイズする方法 - ボクココ

    ども、@kimihom です。 前回の記事で画像のリサイズはサーバーサイドでって話だったんだけど、調べてみると Canvas でリサイズまでできてしまうという衝撃の事実が判明し、それで簡単にリサイズを実装できてしまった。 またもや HTML5 の技術に驚かされることになったので、ここに記す。 JavaScript でリサイズするのが理想的である理由 まず何故 JavaScript 側でリサイズするのがいいのかというと、アップロード時のネットワーク負荷が劇的に下げられるからだ。サーバーサイドでリサイズするとなると、まずそのでかい画像をアップロードしなければならない。この時点で重い画像だとアップロードに数秒かかってしまう。 これを JavaScript、つまりフロントエンドでリサイズできれば、ネットワーク負荷を抑えてアップロードが可能だ。これも HTML5 から登場した Canvas のおかげ

    JavaScript で画像をリサイズする方法 - ボクココ
  • iPhone Safariで動画をインライン再生する方法 - Qiita

    ##iPhone SafariのVideoタグの制限 iPhone SafariのVideoタグには大きく2つ制限がある。 ユーザインタラクション(タップ)なしに再生できない 初期再生時必ずフルスクリーン再生になる 特に2がクセモノで、これのせいでモバイルブラウザに動画広告はほぼ無いし、モバイルブラウザゲームには動画演出がない(MotionJPEGみたいにjpegを数百枚数千枚差し替えるとか涙ぐましいことをしている例はある)。 ##制限は超えられる この制限が超えられないものかと調べてみると、やはり同じようなことを訊いている人が居た。 inline html5 video on iphone - Stack Overflow http://stackoverflow.com/questions/30855662/inline-html5-video-on-iphone で、そのベストアンサ

    iPhone Safariで動画をインライン再生する方法 - Qiita
  • NPMとleft-pad : 私たちはプログラミングのやり方を忘れてしまったのか? | POSTD

    さあ開発者のみなさん、真面目な話の時間です。読者の皆様はおそらくすでにお気づきでしょうが、今週、ReactやBabelやその他大量の有名なNPMパッケージ群が壊れました。そしてその原因は少々驚くようなものでした。 ReactやBabel、その他のパッケージが依存する、left-padというシンプルなNPMパッケージがあります。この記事を書いている現段階で、このパッケージは GitHub上で11 star となっています。このパッケージは全体で 11行のシンプルな行があり、文字列の左を詰める基的な関数が実装されている というものです。上記のリンクが消えた場合に備えて、コード全体をいかに掲載しておきます。 module.exports = leftpad; function leftpad (str, len, ch) { str = String(str); var i = -1; if

    NPMとleft-pad : 私たちはプログラミングのやり方を忘れてしまったのか? | POSTD