プロジェクト

全般

プロフィール

JavaScript » 履歴 » バージョン 2

kanata, 2025/04/13 15:53

1 1 kanata
# JavaScript
2
3
{{toc}}
4
5
# Portal,TextBook,Cheat Sheet
6
7
Lastest Hacking News - JavaScript Cheat Sheet Free Download
8
http://www.cheatography.com/davechild/cheat-sheets/javascript/pdf/
9
10
はてな教科書 JavaScript 編
11
https://hatena.github.io/Hatena-Textbook-JavaScript/
12
13
JavaScript Programming お気楽 ECMAScript2015 超入門
14
http://www.geocities.jp/m_hiroi/light/js2015.html
15
16
K-TechLaboゼミ用学習ノート - JavaScriptのテキスト
17
http://www.k-techlabo.org/blog2/?page_id=1022
18
19
JavaScriptの入門書を jsprimer.net で公開しました
20
https://efcl.info/2018/10/26/jsprimer.net/ https://jsprimer.net/
21
22
JavaScript Promiseの本
23
http://azu.github.io/promises-book/
24
25
trekhleb/javascript-algorithms
26
https://github.com/trekhleb/javascript-algorithms/blob/master/README.ja-JP.md
27
28
>多種多様なアルゴリズムやデータ構造に関するサンプル例がまとめられたリポジトリ
29
30
初心者に分かりやすい!JavaScript 入門チートシート
31
https://commte.net/javascript-basics
32
33
モダンJavaScriptについて
34
https://qiita.com/ayuoyk/items/b0183b36881f69b91282
35
36
37
38
# Gadgets
39
40
## jQuery の使用
41
42
次のコードを実行することにより、jQuery を読み込んでいないページでも jQuery を使用することができる。
43
44
```Javascript
45
if (!window.jQuery) {
46
    document.body.appendChild((function(){
47
        var s = document.createElement("script");
48
        s.type = "text/javascript";
49
        s.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
50
        return s;
51
    })());
52
}
53
```
54
55
## jQueryの使用(Chrome DevToolsのSnippets機能編)
56
57
ChromeのDev Toolsを開き(Ctrl+Shift+IかF12キーを押す)、Sourcesパネルを開いてその中のSnippetsタブをクリック。その後、左側の空白欄を右クリックしてメニューを表示し、その中の『New』をクリック。
58
59
そうすると新しいsnippetが追加され、真ん中にコード記入欄ができるのでsnippetの名前を『jqueryfy』、コード下記のように記入し保存。
60
61
```
62
(function () {
63
  if ( !window.jQuery ) {
64
    var dollarInUse = !!window.$;
65
    var s = document.createElement('script');
66
    s.setAttribute('src', '//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js');
67
    s.addEventListener('load', function(){
68
      console.log('jQuery loaded!');
69
 
70
      if(dollarInUse) {
71
        jQuery.noConflict();
72
        console.log('`$` already in use; use `jQuery`');
73
      }
74
    });
75
 
76
    document.body.appendChild(s);
77
  }else if( !window.$ ){
78
      window.$ = window.jQuery;
79
      console.log("'$' is jQuery")
80
  }
81
 
82
})();
83
```
84
85
jqueryfyの箇所を右クリックしてメニューを表示し、『Run』をクリックする。
86
87
while(isプログラマ) - Chrome DevToolsのSnippets機能がすごい便利そう
88
http://am-yu.net/2014/08/07/chrome-devtools-snippets/
89
90
91
## ページ内に仕掛けられた全てのEventListenersの設定元の一覧をダンプ
92
93
last log - ページ内に仕掛けられた全てのEventListenersの設定元の一覧をダンプし、必要な対策を施す方法
94
http://uupaa.hatenablog.com/entry/2014/09/05/004431
95
96
実際にconsoleに貼り付ける時は、関数の中身だけをコピペする
97
98
```javascript
99
function getAllNodeEventListeners() {
100
  var nodes = [].concat(window, [].slice.call(document.getElementsByTagName("*")));
101
102
  nodes.forEach(function(node) {
103
    var result = getEventListeners(node);
104
    for (var type in result) {
105
      console.log(type, result[type]);
106
    }
107
  });
108
}
109
```
110
111
# Chrome DevTools Snippets
112
113
ChromeのDevTools(開発者ツール)にはSnippetsという、コンソールでデバッグの際に使うスクリプトを保持してくれる機能がある。
114
115
DevTools Snippets
116
http://bgrins.github.io/devtools-snippets/
117
118
119
120
# Debug
121
122
JavaScriptが敬遠される理由の7割ぐらいは、このデバックのし難くさにかかっていると思う。
123
まだ実機で試してないのもあるけど。
124
125
JavaScriptのデバッグ方法 – JSを嫌いにならないためのTips
126
http://postd.cc/how-to-not-hate-javascript-tips-from-the-frontline/
127
128
Qiita - JavaScript,jQueryの爆速コーディング、デバッグ方法論の勧め~実践向け逆引き(windows,chrome向け)~
129
http://qiita.com/shgkt/items/0054670269e1d3aa49b8
130
131
javascript-visualizer - JavaScriptの実行内容を可視化
132
https://tylermcginnis.com/javascript-visualizer
133
134
135
136
137
## alert
138
139
最も原始的なのが、alert()を使う方法です。同様にconfirm()を使うこともできます。
140
C言語のprintfで変数を出力したり、Java言語のSystem.out.println()でインスタンスの中身を出力するのと同じです。
141
142
```javascript
143
alert("Alex");
144
```
145
146
## debuggerステートメント
147
148
デベロッパーツール側では手動でブレークポイントを配置したものと認識されます。
149
150
```javascript
151
debugger;
152
```
153
154
## console.log,console.warn,console.error,console.info
155
156
いずれも以下のようなC言語で使われるような出力フォーマットをサポートします。
157
158
```javascript
159
console.log("Hello %s", "Brian");
160
```
161
162
Qiita - console.logまとめ 2016年夏
163
http://qiita.com/ykyk1218/items/0f5858d077d43a49cfe2
164
165
## console.table()
166
167
結果はコンソール上にテーブルで出力され、オブジェクトの属性でソートすることができます。
168
オブジェクトの中身、JSON(たぶん)、配列が、視覚的に把握しやすくなります。
169
170
```javascript
171
console.table([[1,2,3], [2,3,4]]);
172
```
173
174
## コールトレースを取得する
175
176
失敗した時だけでなく、成功した時にもコールトレースを確認することができます。
177
非標準の関数ですが、主要なデスクトップブラウザではサポートされています。
178
179
```javascript
180
console.trace();
181
```
182
183
非同期コールは、いかが役に立つかもしれません。
184
185
```javascript
186
TraceConsole.trace();
187
```
188
189
## 誰がオブジェクトを変更するか? Objects.observe + console.trace
190
191
オブジェクトのプロパティの一部が変更されることがありますが、誰が犯人か判らないことがよくあります。
192
このような場合Object.observeが役に立ちます。personオブジェクトに対する全ての変更を確認する場合を見てみましょう。
193
console.traceと併用すると、コールトレースも確認できるので、誰が犯人かまで判ります。
194
ただ、現在(2015.05:未確認)は、Chromeのみがこの機能をサポートしているようです。
195
196
```javascript
197
var person = {
198
  firstName: "John"
199
}
200
201
Object.observe(person, function(changes) {
202
  // This callback runs asynchronousty and aggregates the changes that happened
203
  // in the previous execution turn into `changes` param.
204
  changes.forEach(function(change) {
205
    consote.log(change.type, change.name, change.oldVatue);
206
    consote.trace();
207
  });
208
});
209
Object {firstName."John"}
210
211
```
212
213
## 誰がDOMやHTML要素を変更するのか
214
215
MutationObserverと呼ばれるオブジェクトがあり、これによってDOM要素の監視が可能になります。
216
ドキュメント全体で発生した全ての変更をリストアップしたい場合を考えてみましょう。
217
この場合、ドキュメントは選択されたどのDOM要素にも当てはまります。
218
219
```javascript
220
var observer = new MutationObserver(function(mutations) {
221
  mutations.forEach(function(mutation) {
222
    for (var i = 0; i < mutation.addedNodes.Length; i++)
223
      console.log(mutation.addedNodes[i]);
224
  })
225
});
226
observer.observe(document, { childList: true });
227
```
228
229
Chromeでは、プログラミング以外の解決策も使えます。DOM Breakpointsと呼ばれるもので、バックグラウンドではMutation Eventを使っています。
230
231
## サーバ側でクライアントのエラーログを取る
232
233
実に簡単なのですが、Windowオブジェクトにonerrorイベントハンドラを追加するだけでクライアント側の処理は完了です。
234
ハンドラは、サーバ上にエラー情報を蓄積するRESTのエンドポイントに対してAjaxリクエストを行うことができます。
235
236
```javascript
237
window.onerror = function(msg, url, line){
238
  if(encodeURIComponent) {
239
    var req = new AjaxRequest();
240
    var params = encodeURIComponent(url) + encodeURIComponent(msg);
241
    req.setMethod("POST");
242
    return req.loadXMLDoc("/my/servtet", params);
243
  }
244
  return false;
245
};
246
```
247
248
# jQuery
249
250
【脱JQuery】モダンなJSの書き方
251
https://qiita.com/tatsumi_t2/items/ec41fdc4cf269bfa86bc
252
253
## Cheatsheet
254
255
jQuery Cheatsheet
256
http://lab.abhinayrathore.com/jquery-cheatsheet/
257
258
##  Plugin Sample
259
260
jQueryを利用した演出がかっこいいWEBサイト50個 
261
http://designaholic.cc/2011/01/jqueryweb50.html
262
263
12個のかっこいいjQueryスライドショープラグインまとめ
264
http://webdesignfactory.schoolbus.jp/jquery_slide/
265
266
流行のjQueryでスクロールするサイトを集めてみました
267
http://webrocketsmagazine.com/entry/20111102/scrollable-website-with-jquery.html
268
269
クライアントワークでよくお世話になっているjQueryプラグインいろいろ
270
http://webdesignrecipes.com/jquery-plugins-in-cliant-works/
271
272
##  使いたいけど難あり
273
274
http://grow.weblike.jp/immature_design/jquerys/865.html
275
276
http://galleria.io/
277
278
# JavaScript Emulator
279
280
JSBin
281
http://jsbin.com/
282
283
JSFiddle
284
https://jsfiddle.net/
285
286
glot.io - 様々な言語のコードスニペットが共有できるサイト
287
https://glot.io/
288
289
javascript-visualizer - JavaScriptの実行内容を可視化
290
https://tylermcginnis.com/javascript-visualizer
291
292
293
# JavaScript Beatutify
294
295
Online Javascript beatutify
296
http://jsbeautifier.org/
297
298
# Memo
299
300
くんすとの備忘録 - BATファイルにJScriptを埋め込む
301
http://kunst1080.hatenablog.com/entry/2015/12/15/222711
302
303
LintCI(Web上でJavaScriptのLint)
304
https://lint-ci.io/
305
306
Programming Tutorials and Source Code Examples
307
http://www.java2s.com/
308
309
Qiita - ブレークポイントを使ったJavaScriptデバッグを整理してみた【再入門】
310
http://qiita.com/nekoneko-wanwan/items/02aed17773833c3ad3b2
311
312
Qiita - Reactを使うとなぜjQueryが要らなくなるのか
313
http://qiita.com/naruto/items/fdb61bc743395f8d8faf
314
315
Qiita - JavaScript ショートコードテクニック集(ES6含む)
316
http://qiita.com/ichimonji_haji/items/f602f6c437be9e7daa88
317
318
アプギガ - JavaScriptの学習にオススメなWebコードエディタ「Carbide」の万能すぎる可視化ウィジェットがヤバイ!
319
http://plus.appgiga.jp/masatolan/2016/10/13/57333/
320
321
JavaScriptエンジニアなら知ってるよね? エラー処理のいい書き方、悪い書き方
322
https://www.webprofessional.jp/proper-error-handling-javascript/
323
324
Qiita - ゼロから始めるJavaScript生活
325
http://qiita.com/takahashim/items/7838334d1451fb0a9811
326
327
【翻訳】 2016年にJavaScriptを学んでどう感じたか - 【翻訳】 2016年にJavaScriptを学んでどう感じたか
328
http://kikuchi1201.hateblo.jp/entry/2016/10/26/172404
329
330
Subterranean Flower blog - JavaScriptの関数で何ができるのか、もう一度考える
331
https://sbfl.net/blog/2016/12/26/javascript-function-revisited/
332
333
javascriptのライブラリを一覧にしてまとめてみた
334
https://trueman-developer.blogspot.jp/2016/05/javascript.html
335
336
GitHub - trekhleb/javascript-algorithms
337
https://github.com/trekhleb/javascript-algorithms
338
339
JavaScriptをもうちょっと理解する54のトピック
340
https://qiita.com/komlabo/items/3f14c8990a2f94fb5323
341
342
JavaScriptの"非同期処理"を理解する(Promise/async/await)
343
https://qiita.com/kkrtech/items/4680c624012bd265714f