タグ

JavaScriptに関するjaguaのブックマーク (23)

  • JavaScriptの数値型完全理解 - Qiita

    数値というのはプログラミングにおいて極めて基的な対象です。ほとんどのプログラミング言語は何らかの形で数値の操作を行うことができ、もちろんJavaScriptにおいても例外ではありません。 プログラミングにおける数値の特徴的な点は、往々にしてその性質に応じた複数の型1が与えられている点です。まず、数値は整数か小数かによって分類されます。さらに、値を表すのに使われるビット数、また整数に関しては符号ありか符号なしかという分類ができます。例えば、Rustという言語ではこれらの分類が分かりやすく表れています2。Rustにおける数値の型はi32, i64, u32, u64, f32, f64などがあり、見ただけでどのような特徴を持つ数値なのかが分かりやすくなっています。iというのは符号あり整数、uというのは符号なし整数、fは小数で、その後の数字がビット数ですね。 では、JavaScriptにおいて

    JavaScriptの数値型完全理解 - Qiita
  • async/await地獄 - Qiita

    地獄を抜けたらそこは地獄だった。 以下はHow to avoid (or escape) async/await hellという記事の日語訳です。 How to avoid (or escape) async/await hell async/awaitはたしかに我々をコールバック地獄から解放してくれました。 しかし、それは恐るべき地獄の、ほんのプレリュードにすぎなかったのです。 そう、async/await地獄の誕生です。 この記事ではasync/await地獄が何であるか、そしてそれから逃れるためのヒントをいくつか紹介します。 What is async/await hell 非同期JavaScriptを使用する際、しばしば複数の関数呼び出しすべてにawaitをつけがちです。 これによってパフォーマンス上の問題が発生します。 あるステートメントは別に手前のステートメントに依存はしてい

    async/await地獄 - Qiita
  • 酔っ払ってもコードが書きたい!JavaScriptを書き散らかしてPrettierに介護してもらう方法 - pixiv inside

    こんにちは、一般ノーマルエンジニアのgeta6です。社内ではpixiv SketchというサービスでJavaScriptを書く仕事をしています。今日はPrettierの話をします。 JavaScriptを書くのが大好きな皆さま各位におかれましては、きっと酒のつまみにコードを書くこともあるでしょう。しかし酔っ払いながらコードを書くと、往々にして上記のような書き散らかしをしてしまうことがあります。 このコードは動きます。動きますが、思わず目を背けたくなる汚さです。この世に存在することが許されるべきか疑うレベルです。ESLint先生も思わずブチギレです。当然ですね。 CIにLintを仕込んでいた場合は当然通りませんし、gitのprecommit hookにLintを仕込んでいた場合はgit commitすら許されません。堅牢なシステムは酔っ払いにコードをコミットする権利すら与えてくれないのです。

    酔っ払ってもコードが書きたい!JavaScriptを書き散らかしてPrettierに介護してもらう方法 - pixiv inside
  • JavaScriptのプロトタイプからオブジェクト指向を学ぶ - Qiita

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

    JavaScriptのプロトタイプからオブジェクト指向を学ぶ - Qiita
  • 差分検出アルゴリズム三種盛り - Object.create(null)

    こんばんは. 気がつけばもうずいぶんと涼しくなってきました. 勢い余って凍ってしまったりせぬよう, くれぐれも普段の言動にはお気をつけください. はじめに さて, 我々人類にはどうしても二つの文字列 (あるいは行ごとに区切られたテキスト) 間の差分を求めなければいけない瞬間が発生します. 先人たちはそういった時のために diff のようなツールを開発し, それを利用することで文明はめざましい発展を遂げてきました. しかしながら, 使用するアルゴリズムを比較検討したい場合, 「差分」の定義を変えるなどして既存のアルゴリズムに変更を加えたい場合, diff のない異世界に飛ばされて自分で実装しなければいけない時などにおいては, 差分検出アルゴリズムについての理解が必要不可欠です. というわけで, この記事では文字列間の差分検出とは何かということと, 差分を求める三種類のアルゴリズムの紹介・解説

    差分検出アルゴリズム三種盛り - Object.create(null)
  • .mjs とは何か、またはモジュールベース JS とエコシステムの今後 | blog.jxck.io

    Intro 長いこと議論になっていた ES Modules の Node における扱いに一応の決着が付き、 .mjs という拡張子が採択された。 この拡張子の意味と、今後ブラウザと合わせて Universal JS を実装していく上での作法が見えてきたことになる。 合わせてエコシステムが対応していくことで、長年の夢だった JS のモジュール化を進めていくことができるだろう。 ES Modules 徐々に揃いつつある ES Modules(ESM) の仕様は TC39 で行われており、その仕様については主に以下のような部分になる。 import や export と行った構文 module 内はデフォルト strict mode module でスコープを閉じる module 内の this は undefined etc 逆に以下は TC39 での策定範囲外となる どう Module を読

    .mjs とは何か、またはモジュールベース JS とエコシステムの今後 | blog.jxck.io
  • JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io

    Intro textarea などに入力された文字数を、JS で数えたい場合がある。 ここで .length を数えるだけではダメな理由は、文字コードや JS の内部表現の話を理解する必要がある。 多言語や絵文字対応なども踏まえた上で、どう処理するべきなのか。 それ自体は枯れた話題ではあるが、近年 ECMAScript に追加された機能などを交えて解説する。 なお、文字コードの仕組みを詳解すること自体が目的では無いため、BOM, UCS-2, Endian, 歴史的経緯など、この手の話題につき物な話の一部は省くこととする。 1 文字とは何か Unicode は全ての文字に ID を振ることを目的としている。 例えば 😭 (loudly crying face) なら 0x1F62D だ。 1 つの文字に 1 つの ID が割り当てられているのだから、文字の数を数える場合は、この ID の

    JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io
  • Mackerelにおけるフロントエンドのパフォーマンス改善の取り組み - Hatena Developer Blog

    この記事は、はてなエンジニアアドベントカレンダー2016の14日目の記事です。13日は id:astj による『Perl 6 のモジュールエコシステムの話とモジュールを公開する話 (2016年12月版) - 平常運転』でした。 こんにちは。Mackerelチームでアプリケーションエンジニアをやっている id:itchyny です。 Mackerelは、同じ役割を持つホストを束ねた「ロール」、そしてロールを束ねた「サービス」というまとまりでホストを管理し、一覧性の良いグラフ画面を提供しています。 ロールあたりのホスト数、そしてサービスあたりのロール数が増えると、グラフの画面のパフォーマンスに大きく影響します。 Mackerelチームでは大規模なサービスでも快適にグラフを閲覧できるように、継続的に画面のパフォーマンスを改善してきました。 記事では、Mackerelフロントエンドのパフォーマ

    Mackerelにおけるフロントエンドのパフォーマンス改善の取り組み - Hatena Developer Blog
  • シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ

    あらすじ Web技術が複雑になる中で、JavaScriptのプロファイリングをとる方法とは。 プロファイリングを取るためのコードを手で書いてみましょう。 とてもシンプルで、かつ最高のJavaScriptプロファイラ sjsp を作りました。 当にあった怖い話 上司 「とにかくJavaScriptのコードを速くしてくれ」 私 「分かりました、速くします」 (次の日) 私 「いいプロファイラがないなら作ればいいじゃない」 同じチームの人 「えっ?」 私 「最高のJavaScriptプロファイラ作ったよ」 同じチームの人 「「えっえっ???」」 私 「早速使ってみたらこことここが遅いって分かったよ」 同じチームの人 「「「この子は一体…」」」 JavaScriptのプロファイリングの難しさ 近年、Webブラウザーの処理速度は著しく向上し、その可用性の高さから、アプリケーションのプラットフォーム

    シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ
  • 一から始めるJavaScriptユニットテスト - Hatena Developer Blog

    この記事は、はてなエンジニアアドベントカレンダー2016の5日目の記事です。 こんにちは、はてなでアプリケーションエンジニアをしている id:shiba_yu36 です。先日、buildersconにおいて、現在所属しているプロジェクトJavaScriptのユニットテストを導入した知見について、「一から始めるJavaScriptユニットテスト」というタイトルで発表しました。 speakerdeck.com この発表は、実際にJavaScriptのユニットテスト環境を作ってみると非常にハードルが高いと感じたので、そのハードルを少しでも下げられればという思いで、非常にシンプルな例で一から環境を作る例を紹介しました。アジェンダは次のとおりでした。 カクヨムのJS環境 JSのテストツールを整理する 通常の関数のユニットテスト DOM操作する機能のユニットテスト カクヨムのJS環境や、JSのテスト

    一から始めるJavaScriptユニットテスト - Hatena Developer Blog
  • GitHubリポジトリのスター数を見える化してみました。 - Qiita

    1位のFreeCodeCampは主にフロントエンド言語(HTML,CSS,JavaScript..etc)を学習できるサイトらしいです。 GitHub APIを使用すれば、上記のようなリポジトリ情報を取得する事ができます。パラメータを指定すればキーワード検索や言語の指定、ソートも可能です。 今回はGitHub APIを利用して、言語毎にスター数の多いリポジトリを可視化する事で誰でも簡単に人気のあるリポジトリを把握できるようにしようといった試みです。 ちなみにGitHub APIを使ったサービスに以下のようなものがあります。 GitHub Ranking(自分のGitHubアカウントでランク付けしてくれる。データが最新じゃないので更新はされていないっぽい?) GitHut(アクティブな言語を可視化する試み) 技術構成 技術構成は至ってシンプルです。今回は個人的にWeb ServerとAPI

    GitHubリポジトリのスター数を見える化してみました。 - Qiita
  • GopherJS の基礎 - Qiita

    稿では、筆者が普段使っているツールの一つである、 GopherJS の基的な使い方について説明します。 GopherJS は Go で書いたプログラムを JavaScript に変換するソフトウェアです。生成した JavaScript は、 Web ブラウザはもちろん、 node.js で実行することが出来ます。 Web アプリケーションを書かなければならないが、どうしても Go で書きたいという、 Go プログラマーによくある (?) お悩みにうってつけです。 変換結果はそこそこ素直な読みやすい JavaScript になります。 asm.js に変換する Emscripten や、バイナリ形式の Web Assembly とは異なるアプローチです。 GopherJS のアプローチの場合、デバッグやプロファイルはしやすいですが、ファイルサイズやパフォーマンスには若干難があります。 な

    GopherJS の基礎 - Qiita
  • JavaScriptで群れの動きを表現する - Qiita

    はじめに この記事はGoodpatch Advent Calendar2日目の記事です。 今日は12/18ですが、2日目の記事を書く人が色々あって急遽書けなくなってしまったので、僕が代打で書く事にしました。 今回はGoodpatchのエンジニアが隔週で行なっている社内勉強会(その名もテクみ勉強会)で発表した内容ですが、「群れ」について書きたいと思います。 そもそも「群れ」とは一体何なのか 「群れ」についてWikipediaには以下のように書かれています。 群れは集団と言う数で淘汰(自然選択)の圧力に対抗しようとした生存戦略の一つ(個体ではすぐに天敵にべられてしまうが、集まることで天敵を寄せ付けないなど)であると考えられる一方、群れで行動することで、生殖の面でも有利に働くと考えられている。 集団的自衛権然り渋谷のハロウィン然り、群れを成す事で他を圧倒し、自らが生き残るための生存戦略なのです

    JavaScriptで群れの動きを表現する - Qiita
  • 2年ぐらいJavaScriptから離れていた人に贈るES6対応表 - Qiita

    この記事はTech-Circle Hands on Advent Calendar 2016の2日目の記事です。 昨日はtominaga443さんのパワポでつくるスマホアプリ: CanvasFlipでインタラクティブなプロトタイピングでした。 引き続きフロントエンド週間ですが、今日はJavaScript行ってみましょう。 「JavaScript? うん、まぁ最近書いてないけど、ある程度は読み書きできるよ」 とか言っていたのもつかの間、新しめのコードを見てみるとES6(ES2015)、ES2016で追加された新しい記法に打ちのめされたりします。 ReactやらReduxやら、新しい技術はどんどん出てきますが、学ぶ際に記法で嵌っているとコアな部分に集中できないので、まずは新しい記法に慣れてしまいましょう。 わかってしまえば単なる便利記法なので難しくないです。 なお、React/Reduxのコー

    2年ぐらいJavaScriptから離れていた人に贈るES6対応表 - Qiita
  • お疲れさまXMLHttpRequest、こんにちはfetch - Qiita

    Service Workersでプッシュ通知を受信できるようになったわけですが([1]: GCM)([2]: Web Push)、Chromeではバージョン48まではGCMで通知だけができるようになっただけで、メッセージ体は通知を受けてからService Workerでサーバから改めて受け取るような実装をする必要があったりします。 ここで、Service Workersでは、XMLHttpRequestが使えません。その代わり、XMLHttpRequest (以下、XHR)に代わるWHATWGの仕様としてFetch APIがあり、Service WorkersではこのFetch APIを使うことになっていますので、その使い方を簡単に紹介します。 Fetch API自体は、Service Workers専用のものではなく、メインスレッドでもXHRの代わりに使うことが可能です。現時点で実装し

    お疲れさまXMLHttpRequest、こんにちはfetch - Qiita
  • ES6入門【まとめ】 - Qiita

    はじめに いままでフロント側は、JQueryを使用した開発がメインでしたが、 最近になってReactを取り入れるようになりました。 それに伴い、ES6を使用することになったため、 基礎的ではありますが、ES5と比べて変わっている点をまとめておきます。 ざっと大きく分けて4項目について、まとめておきました。 目次 ■let, constによる宣言 ■クラス構文 ■アロー関数 ■importとexport let, constによる宣言 ES5までは、varによる変数宣言を行っていましたが、 ES6では、letもしくは、constによる変数宣言が追加されています。 ■letとconstの違いは? 一番の違いは、 letが再代入可能であるのに対して、 constが再代入が不可能であることです。 そもそもvarに関しては、再定義可能でしたが、こちらに関しては、両方ともに不可となっています。 まとめ

    ES6入門【まとめ】 - Qiita
  • 今年のうちに知っておきたい!ES2017に入る5つの新仕様 - エンジニアをリングする

    はいっ Goodpatch Advent Calendar 2016 5日目です! 2016年もまもなく終わりますね。 あと半年もすればES2017のリリースですね! というわけで先月Node学園祭でご紹介したES2017の新仕様をブログにおこしておさらいしてみようと思います! ES2017に入る5つの新仕様 Object.values / Object.entries String padding Object.getOwnPropertyDescriptors Trailing commas in function parameter lists and calls Async Functions https://github.com/tc39/proposals/blob/master/finished-proposals.md 1. Object.values / Object.e

    今年のうちに知っておきたい!ES2017に入る5つの新仕様 - エンジニアをリングする
  • 2016年にJavaScriptを学ぶとこんな感じ

    このストーリーは、Circle CIに投稿された”It’s the future”というストーリーにインスパイアされたものです。オリジナルはこちら。ここに書いたことは一つの意見というだけで、他のJavaScriptフレームワークもそうですが、過剰に真に受けないでください。このストーリーを執筆中に新たなJavaScriptフレームワークは作成されていません。 やあ、今新しいプロジェクトをやっているんだけど、実はここ数年ウェブのコード書いていなくてさ、しかも以前とは少し変わったとも聞いているよ。それで君が一番この辺でウェブ開発に詳しいって聞いたんだけど? -フロントエンドエンジニア、といったほうが正しいが…まあ、俺なら間違いない。俺のは2016年のウェブだからな。ビジュアライゼーション、ミュージックプレイヤー、サッカーをするドローン等々。JsConfとReactConfから帰ってきたばかりだか

    2016年にJavaScriptを学ぶとこんな感じ
  • ログイン - はてな

    パスワードを忘れた方はパスワードの再設定を行ってください。 初めての方ははてなID登録 (無料) してください。 うまくログインできない方はお問い合わせをご覧いただき、Cookieの設定をご確認ください。

    ログイン - はてな
  • JavaScriptの文化とleftpadの話とpadStartについて - from scratch

    無駄にラノベみたいに長いタイトル書いちゃったんですが、まぁやっぱり一言くらいは残しておくかと思ったので書きます。長いのでまとめだけでも見てもらえると良いかもしれません。 leftpadの話はかなり大事になっていて、Node.js界隈を中心としてその他のOSSをやっている全体的に話が波及しています。幾つかの記事を読みました。今回はJSの文化歴史についてちょっとずつ書いていこうかなと思います。 の虫: npmからkikとその他諸々が消されたまとめ 江添さんの話はすごくよくまとまっていて、ネタも含めた上で一番面白い話になっていました、ここで言われている下記の疑問に答えていこうと思います。 もっと憂うべきパッケージがある。isArrayだ。このパッケージは一日88万回もダウンロードされていて、2016年2月だけの一ヶ月間に1800万回もダウンロードされていて、72個ものNPMパッケージが依存し

    JavaScriptの文化とleftpadの話とpadStartについて - from scratch