連載のはじめに
みなさんこんにちは、
本記事では、
現場のエンジニアの声は私が開発に携わっている技術系QAサイトteratailから抜粋しています。
第1回では、
JavaScript
JavaScriptは主にウェブブラウザを実行環境とし、
また、
この中で、
JavaScriptのコーディング規約
JavaScriptを開発する際にチームでの記法を合わせるための規約設定は最初に行われるべきです。
個人で開発するする際でも記法がブレるとリファクタリングや読み直しが面倒です。
世の中には正しい書き方として色々なものが提示されています
- googleが提唱しているGoogle JavaScript Style Guide
- GitHub上で強く支持されているAirbnb JavaScript Style Guide
- 他にもNode.
js style guideやjQuery JavaScript Style Guideなど
その中で、
- JsHintを導入
(JsLintは厳しすぎるのでJsHintくらいがちょうどよい) - "use strict"厳格モードで記述する
補足ですが、
- 例) 中括弧でブロックされているか、
==
ではなく===
を使用しているか、など
thisの使い分けができていますか?
JavaScriptのthisは呼び出し元によって意味が変わります。
- グローバルオブジェクトとしてのthis
- コンストラクタ内のthis
- メソッドに所属しているthis
- apply,callから変えられるthis
簡単に分類すると上のようになります。
ここで以下の質問を見てみましょう。
JavaScriptにおけるthisの振る舞いがわかりません。
- やりたいこと
- 下のコードでresizeTouphone.
ratio. wを正常に出力したい
現在のコードでresizeToiphone.
ここでのthisはwindowオブジェクトを指すため、
そのため iWidth
やwWidth
と行ったプロパティがUndefinedとなり、
他にもコンストラクタ内のthisとして扱う方法もありますが、
シンプルに行うのは上記でしょう。
イベントハンドラーとイベントリスナーの違いをご存じですか?
JavaScriptでボタンのクリックなどのイベントに応じて処理を追加する際に、
なんとなく、onclick
と記述した処理をイベントハンドラー、addEventListener
とした処理をイベントリスナーと使い分けてはないでしょうか。
まずイベントとは、
よく利用される click
、 change
イベントなどの他に印刷を検知する beforeprint
、online/
イベントなど様々なものが与えられています。
他にもよく使われるものでこのようなものがあります。
イベント | 概要 |
---|---|
change | 入力内容の変化 |
select | プルダウン選択 |
blur | マウスフォーカス |
click | マウスクリック |
focus | 要素のフォーカス |
keydown | キーボード押下 |
error | リソースの読み込み失敗 |
load | 画面ロード開始 |
submit | サブミット時 |
イベンハンドラーとイベントリスナーについては参考文献により、
w3cでは、
実際にエンジニアは以下の様な概念での使い分けをしています。
- イベントハンドラー:イベントに対して紐付けられる処理
- イベントリスナー:イベントにイベントハンドラを紐付ける仕組み
AltJSは何を使えばいい?
AltJSとは
様々な記法のあるJavaScriptの代替プログラミング言語で、
なぜAltJSが必要なのでしょうか?
JavaScriptは言語仕様が柔軟すぎ、
そのため、
それらを回避するために、
言語 | 設計/開発 | 影響を受けた言語 | 特徴 |
---|---|---|---|
TypeScript | Microsoft | Java, C# | ECMAScript 6の先行実装, 開発環境、 |
CoffeeScript | Jeremy Ashkenas | Ruby, Python, Haskell | 構文がシンプル, Railsに採用されている |
Dart | Java, C++, Go | DartVMでサーバ側の開発も可能 | |
JSX | DeNA | ActionScript | 高速なJavaScriptの生成, 国産だがドキュメントは英語 |
自分のスキルや、
最後に
本稿では、
JavaScriptは進化の歴史上、
その中で、