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

概要 とりあえず問題 なぜこうなるのか? まとめと予防策 JavaScriptには、他の言語ではあまり聞かない(あるいは存在しない)「変数の巻き上げ(hoisting)」という概念があります。これは(たぶん)JavaScript特有のもので、かつ重要なポイントです。 この「変数の巻き上げ」が原因でコードが思った通りの動作をしなかった場合、この概念を知らないと、いくらコードを見直しても問題を発見することができません。ドツボにはまります。 そういう意味でも、この「変数の巻き上げ」の概念をおさえておくことは重要です。 とりあえず問題 変数の巻き上げを説明するには、文章で説明するよりもコードを見てもらった方が理解できると思います。 まずは次のコードを見てください。 var myname = "global"; function func() { console.log(myname); //出力内
JavaScript Primer 迷わないための入門書 Tweet Watch Star Xのハッシュタグ: #jsprimer これからJavaScriptを学びたい人が、ECMAScript 2015以降をベースにして一からJavaScriptを学べる書籍です。 プログラミングをやったことはあるが、今のJavaScriptがよくわからないという人が、 今のJavaScriptアプリケーションを読み書きできるように書かれています。 初めてのプログラミング言語としてJavaScriptを学ぶ人は、まずは「はじめに」から読んでみてください。 書籍版 このウェブサイトの内容はアスキードワンゴから書籍として出版されています。 書籍版の内容はウェブサイト版と同一ですが、本として読めるように最適化されています。 書籍版は次のサイトから購入できます。 Amazon 達人出版会(電子書籍版) 詳細につ
Source Mapの仕様をちゃんと把握したくspecのドキュメントを読んだので、その抄訳メモ(と一部はそのセクションについて解説しているブログ記事へのリンク). Source Map Revision 3 Proposal - Google Docs ドキュメントのRevision Document Revisionsの最後がNovember 18, 2013になっているRevision. ライセンス オリジナルと同様にCreative Commons Attribution-ShareAlike 3.0 Unported License. Revision 3 Format Proposed Format Line 1: ファイル全体で単一のJSONオブジェクト. Line 2: バージョン(常にオブジェクト内で最初のエントリー)、正の整数. Line 3: オプショナル、このsour
2018年5月30日 browerlist-ga を利用して開発対象のブラウザにより適した Browserslist を設定してみよう UI開発者 古川 Browserslist とは、 Autoprefixer や Babel などのツールにおいて、開発対象ブラウザを共有するためのライブラリです。 Browserslist は通常 Can I use のデータを元に、全世界のブラウザ利用状況の中から package.json などの設定ファイルに指定した記述に従って対象ブラウザを列挙します。 Browserslist の指定には要注意 Browserslist の指定には少し注意が必要です。 例えば、Browserslist で単に「last 2 versions」と指定した場合、ブラウザのシェア率が0%のブラウザや、既に開発が終了している Internet Explorer 10 まで
[フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう こんにちは、@yoheiMuneです。 ブラウザのレンダリングの仕組みはHTML5 RocksやHow browsers workで詳しく解説されてきました。しかしそれらはとても詳細で、読破して理解するのは大変です。 今回のブログでは手軽にレンダリングの概要を理解できるように心がけました。またより詳しく学べるようなリンクも記載しました。 そしてブラウザのレンダリングの仕組みを理解した上で、どのようなJavaScriptを書くべきかについても記載しました。 目次 ブラウザのレンダリングの仕組み この章では、HTMLとCSSが読み込まれてから画面に表示されるまでの間に、ブラウザがどのような処理を行っているかを説明します。 ファイル読み込みから表示までの一連の流れは以下図の通りです。 [1]
TypeScriptは型がついたJavaScriptです。プログラミングにおいて型があることの恩恵は大きく、近頃AltJSの代表格として人気を集めています。TypeScriptはもともと型のないJavaScriptで書かれるコードに型を付けることを使命としていることもあり、たまに変な型が追加されます。例えばTypeScript2.8で追加されたconditional typesはずいぶん注目を集めました。これによってTypeScriptの型システムの表現力が広がりましたが、一方でTypeScriptを書いている人の中には、よく分からない型が増えてついて行けない、一部の人たちが長くてよく分からない型定義を書いて喜んでいるだけと思っている方もいるのではないでしょうか。実際、健全にJavaScriptを書いていれば、自分でそのような変な型を書くことはあまり多くありません。 そこで、この記事ではT
この記事は「TypeScriptの型入門」の続編です。入門の続編ということなので初級というタイトルにしてみました。TypeScriptの型よくわからんという方は先に入門から読むことをおすすめします。入門レベルのTypeScriptくらい分かるよという方は読まなくても大丈夫です。 TypeScriptの型入門 さて、前回の記事ではTypeScriptの型を一通り紹介しました。この記事ではその続編として、実用上必要になるTypeScriptの型の挙動を理解したり、標準ライブラリに存在する型の使い方を理解することを目標にします。前回に引き続き、あくまでTypeScriptの型に関する話ですから、JavaScriptの言語機能とか、TypeScriptの構文とかの話はしません。悪しからずご了承ください。 最終更新: 2019-03-16 (TypeScript 3.4に対応しました) union型
対象読者 IoTに興味があり、JavaScriptの基本的な知識がある方を対象とします。 はじめに 今回は、ワンボードマイコンTessel 2の開発環境の構築と、LEDを光らせる(いわゆるLチカ)ところまでを紹介します。 IoTとTessel 2 IoTとは、もはや説明するまでもありませんが、Internet of Things(モノのインターネット)の略称で、PCなどに限らず、あらゆる「モノ」がインターネットにつながり、相互に制御する仕組みのことです。この概念自体は、特に新しいというわけではないものの、最近大きな注目を集めています。 ハードウェア(デバイス)が超小型で高性能になり、デバイス上での処理やプログラム開発の制限がなくなってきたことも、IoTブームのひとつの要因でしょう。特に、Raspbbery Piというシングルボードコンピュータが、火付け役になったことは間違いありません。シン
Next.jsとは Next.js(ネクストジェーエス)とはSSR(Server Side Rendering)をするアプリケーションのためのJavaScriptフレームワークです。 SSRの実装が簡単に行えるためSSRやりたいけど難しそう…という方にはオススメです。 Next.jsには以下のような特徴があります。 SSRがデフォルトで提供されている ページ読み込みを早くするために自動でコードの分割を行う シンプルなルーティングを実装できる HMRをサポートする開発環境 ExpressなどのNode.jsのHTTPサーバーを実装できる BabelやWebpackとカスタマイズ可能 SSR(Server Side Rendering)とは Reactなどではブラウザなど(Client Side)でJavaScriptが動的にHTMLを生成していましたが、JavaScriptをサーバーサイドで
TypeScriptはMicrosoftが開発するプログラミング言語です。JavaScriptのスーパーセットという位置づけで、静的型付けなど強力な言語機能を備えています。TypeScriptは高度なウェブアプリケーションの開発で使われることが多く、ほとんどのフロントエンドエンジニアが使っているといっても過言ではありません。 ▲TypeScriptの公式サイト TypeScriptはコンパイラによってJavaScriptのコードが得られますが、TypeScriptのコンパイラにはECMAScript Modules(ES Modules = importやexport文のこと)をまとめる機能が提供されていません。そのため、ES ModulesのJSファイルをまとめるモジュールバンドラー(例:webpack、Rollup等)をTypeScriptと合わせて使うのが一般的です。 この記事では、
Ryan Dahl は Node.js の original author ですが、彼の作ったプロダクト deno に関するトークが jsconf.eu 2018 でありました。 Node.js にずっと関わってきた僕が見て非常に興奮するような話だったので、しばらくぶりにブログに書き起こすことにしました。 背景 Ryan Dahl は2009年に Node.js の話を初めて公の場に公開しました。その時の「公の場」というのが「jsconf.eu 2009」です。 www.youtube.com Video: Node.js by Ryan Dahl - JSConf.eu - 2009 この発表から Node.js が広まり、今やサーバのみならず、IoTデバイス、デスクトップアプリなど、様々なところで動作しています。 で、今回はその発表から9年の歳月が経過し、Node.jsに対しての設計不
LIGアドベントカレンダー1日目です! こんにちは@n0bisukeです。 Nightmareを久々に使ってみたら起動したタイミングでElectronが起動してびびってたらそういうことになったみたいです。 Google Analyticsにログインしてカスタムレポートの値を取得する作業を自動化してみました。 あとでもうちょい細かく書いてLIGブログでまとめてみます(予定)。 Nightmareとは NightmareまたはNightmare.js http://www.nightmarejs.org/ ヘッドレスブラウザでJSの自動テストなどを行うPhantom.jsのラッパーツール・ライブラリです。 ログイン処理やボタンを押した際の挙動などを自動テストする際に使います。 yahooにアクセスしてgithub nightmareで検索する処理を書いた時の比較です。左がPhantom、右がN
BFF(Backends For Frontends)超入門――Netflix、Twitter、リクルートテクノロジーズが採用する理由:マイクロサービス/API時代のフロントエンド開発(1)(1/2 ページ) マイクロサービス/API時代のフロントエンド開発に求められる技術の1つBackends For Frontends(BFF)について解説する連載。初回は「超入門」としてBFFの概要や事例を中心に紹介する。 本連載「マイクロサービス/API時代のフロントエンド開発」では、今注目のBackends For Frontends(BFF)について数回にわたって解説します。初回である今回は「超入門」としてBFFの概要や事例を中心に紹介します。第2回はBFFの作り方について、第3回はBFFを使ったフロントエンド開発者主導のマイクロサービス/API化の手順について解説します。 想定読者は、Webア
こんにちは、ほそ道です。 今回はDOMネタです。 イベントのキャプチャとバブリングについて覚書をまとめて参ります。 また今回はv8での検証であり、レガシーなIEは対象外です。 レガシーなIEはイベント設定メソッド自体が違いますのでご注意くださいませ。 目次はこちら 入れ子なDOMのイベント発生順序制御 DOMが入れ子構造になっていてそれぞれにイベント(例えばClickイベント)が設定されていた場合 「このように動いてほしい」という期待はケースバイケースであると思います。 期待通りの処理になるようカッチリ制御しちゃいましょう。 addEventListenerの第三引数「useCapture」 例えば下記の様なHTMLがあったとします。 body内にdivが入れ子になっておりそれぞれにClickイベントが登録されています。 <html> <head lang="en"> <meta char
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く