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

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? このリストは何? MDN web docs を、あたかも書籍の目次かのごとく整理しなおしたものです。それぞれ MDN web docs の記事へリンクしています。 なぜこれが必要になったかというと、人材市場でフロントエンドエンジニアが少なすぎる現状をどうにかするべく教育体制を整えるところから考え始めたのですが、それならまずは日頃お世話になっている MDN web docs を教材として扱いたいなと思ったからです。慣れてきてもよく参照するし「アレどこだっけなぁ?」を軽減もしやすいかなって。 MDN web docs は内容そのものはかなり
誰かの投稿にコメントしたけど、散逸するのももったいないので記事にした。 TL;DR; JavaScript の Promise は モナド則を満たさないのでモナドではない だから何? Promise がモナドではなくても、別に困らない 関数型プログラミング指向の人で、モナドの恩恵を受けるような操作(例: 関数の lift )が必要な場合、サードパーティ製の非同期モナドを使わないといけない(例: Folktale) モナド則を JavaScript で モナド則を Haskell wiki から抜粋 Left identity: return a >>= f ≡ f a Right identity: m >>= return ≡ m Associativity: (m >>= f) >>= g ≡ m >>= (\x -> f x >>= g) JavaScript 用に書き直す。retu
JavaScriptにおいて、Promiseのthenを使った書き方を、async/awaitを使って書き換えられるわけですけども その書き換えって、Haskellのモナドでbind(>>=)を使った書き方を、Do記法に書き換えとそっくりじゃないですか? ということで、どんな感じで対応しているか検証してみます。 コードの全文は最後に載せますね。合わせて60行もないです。 Haskell側のモナドとして、Eitherモナドを使うことにします。 Haskellのコードはimport Data.Eitherしておきます。 記事を通して使う関数 まずは、Promiseやモナドを返す関数ohとyeahを用意します。
この資料について こちらのイベントでの発表資料です。 基本的には、現時点でmacOSのChromeで(v72)試せる内容になってます。他のブラウザでは試してません。 Webエンジニアだったり、WebディレクターだったりWeb業界の人向けです。 過去にも同じようなネタやったことあるけど、割と状況変わったりするので再度調査も兼ねてまとめました。 IoTってタイトルで言ってますけど、IoTっぽいことって言った方が正しいです。IoTとは〜みたいなことを知りたい人は誰かビジネスサイドの人のそういう資料を見ましょう。個人的にはIoTとは〜みたいな問いはここではどうでもいい各々の解釈で良いと思っています。 IoTは何でも良い! #gigttt — Mt (@devemt) 2019年3月20日 うーん、誰かに怒られるのかなぁ 自己紹介 名前: n0bisuke 所属: dotstudio コミュニティな
Intro Promise.allSettled() と Promise.any() の仕様策定が進んでいる。 両者は近いレイヤの仕様では有るが、作業の進捗には差がある。 Promise.allSettled は Stage 4 であり、 Chrome や Safari TP には実装もされている Promise.any は Stage 2 であり、実装はまだない ここでは、これらがあると何が嬉しいのかを Promise.all(), Promise.race() の特徴を踏まえて解説する。 Promise.all()/race() Promise.all(), Promise.race() は、いずれも複数の Promise をまとめて処理する Utility Method のようなものである。 all は全ての Promise が Resolve したら Resolve し、 race
I was practicing some JavaScript when one of my friends came across this JavaScript code: document.write(('b' + 'a' + + 'a' + 'a').toLowerCase()); The above code answers "banana"! Can anyone explain why?
Client-side web programming in Haskell: A retrospective At the beginning of this decade (2010), a few of us Haskellers were exploring how best to do client-side web programming. We didn’t want to write JavaScript. There’s a surprising number of techniques we tried to avoid doing so. There was work coming from academia and industry. Here’s a history of my own experience in this problem space. In 20
Meet the new standard for modern TypeScript development. Type safe, reactive, framework agnostic.
この記事は原文: Array Number Ranges in JavaScript ES6 を、著作者であるDavid Arvelo氏の許可を受けて翻訳したものです。 注意 この記事の公開後、ECMAScriptの技術委員会によりリスト内包表記はES6の仕様から削除されました。 この記事はサポート予定の他の機能についても言及しているため、未編集のままにされています。 ここ数日間、私はECMAScript 6について深く掘り下げて学ぶ日々を過ごしました。ES6は、ES5と比較してとても素晴らしく、ES6が近い将来に使えるようになる事によるWebの可能性に興奮を覚えました。 実行環境がどうであれ、あなたがJavaScriptプログラマであれば(パッと見は難しく感じても)ES6の新機能を学ぶことには大きな価値があります。なぜなら、イテレータ, ジェネレータ, クラス定義, ブロックスコープ,
イテレータは今となっては多くのプログラミング言語に存在する概念で、繰り返し処理やループ、ストリームといった対象を抽象化してくれるものです。JavaScriptにはES2015でイテレータが追加されており、JavaScriptを触っている方にとっては既に馴染み深いものとなっています。 とはいえ、JavaScriptのイテレータにはひとつ問題点がありました。それは「イテレータを直接変換・操作できるメソッドが存在しない」という点です。従来イテレータが持つメソッドはイテレータから一つ値を取り出すnextメソッドのみであり1、それ以上の機能は何も提供されていませんでした。これにより、Rustなどのイテレータが強い言語に比べてJavaScriptのイテレータは有用性が大幅に低いものとなっていました。 この記事では、この問題を多少解消するプロポーザル「Iterator Helpers」を紹介します。これ
Unexpected layout shifts can disrupt the user experience in many ways, from causing them to lose their place while reading if the text moves suddenly, to making them click the wrong link or button. In some cases, this can do serious damage. A sudden shift in layout makes the user confirm a large order they intended to cancel. Unexpected movement of page content usually happens when resources load
Serving the right code to the right browsers can be tricky. Here are some options. Serving modern code to modern browsers can be great for performance. Your JavaScript bundles can contain more compact or optimized modern syntax, while still supporting older browsers. The tooling ecosystem has consolidated on using the module/nomodule pattern for declaratively loading modern VS legacy code, which p
FacebookがHermesという組み込みのJSエンジンを公開したようです。 ReactNative用の組み込み用のJSエンジン(最新版だとオプション切り替えで使えるっぽい) MITライセンス プロプラなものとの組み合わせが発生しうる組み込みにおいては正義しかない ES2015をサポート(予定) 現時点ではクラスとかlet/constのブロックスコープは実装途中 Map/Setとかの組み込みクラス系は実装済み サイズの小ささをうたった処理系はES2015への対応はまだまだなのが多いので(Duktapeとか)良い 事前にJavaScriptのソースコードをパースして中間表現(LLVM IRをそのまま利用?)にしておいてロードする モバイルのCPUやバッテリー、メモリーにも優しい なお、エロいというのは強く感情が揺さぶられた結果が出てきたワードであってセクシャルな内容は一切含まれておりません
Hermes is a JavaScript engine optimized for fast start-up of React Native apps. It features ahead-of-time static optimization and compact bytecode. If you're only interested in using pre-built Hermes in a new or existing React Native app, you do not need to follow this guide or have direct access to the Hermes source. Instead, just follow these instructions to enable Hermes. Noted that each Hermes
さて、前回は tink と yarn v2 における CLI 戦略の話でした。次は JavaScript Registry についてです。 ちなみにこの内容が今回 JSConf.EU 2019 で一番盛り上がったトピックです。 JavaScript Registry とは JavaScript Package をバックエンドで管理しているサービスです。 npm が管理しているものがいちばん有名です。他にも GitHub が管理する Registry が公開される予定です。 The economics of Package Management the economics of package management slide: github.com video: www.youtube.com 「Package Managementの経済」というタイトルです。 聴講者からすると、何話すのか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く