JavaScriptの実装に役立つリンク集



|実行順序|処理|
|:-:|:-:|
|1|DOMが読込まれる|
|2|`$(function(){}`<br/>`jQuery(function(){}`<br/>`jQuery(document).ready(function(){`|
|3|画像などのコンテンツが読み込まれる|
|4|`$(window).load(function(){}`<br/>`window.onload = function() {}`|





# Node.js
```bash
# Node.jsのバージョンを見たい
$ node -v
v10.23.1

# yarnのバージョンを見たい
$ yarn -v
1.22.10

# 【npm】-----------------------------------------
# npmのバージョンを見たい
$ npm -v
# インストールしたものの一覧を見たい
$ npm ls
# 特定のパッケージに関わるものだけ、インストールしたものの一覧を見たい
$ npm ls {パッケージ名}
# 階層を指定して、インストールしたものの一覧を見たい
$ npm ls --depth=0
```

- [Node.jsをインストールする - Qiita](https://qiita.com/ponsuke0531/items/04c6afd365e4354aa266)
- [yarnの使いかた - Qiita](https://qiita.com/suisui654/items/1b89446e03991c7c2c3d)
- [yarnをインストールする - Qiita](https://qiita.com/ponsuke0531/items/e623c7e784533987aca0)
- [Visual Studio CodeとDockerを使ってでVue.jsをやってみる - ponsuke_tarou’s blog](https://ponsuke-tarou.hatenablog.com/entry/2022/02/28/171429)
- [【いまさらですが】package.jsonのdependenciesとdevDependencies - Qiita](https://qiita.com/chihiro/items/ca1529f9b3d016af53ec)
- [Vuetifyの便利なCSSのクラス集 - Qiita](https://qiita.com/ponsuke0531/items/540df70bc769de69bfae)










# 〇〇を変換したい
```js
/** 日付を文字列に変換したい(AngularJS) */
let date = new Date();
let stringDate = $filter('date')(date, 'yyyy-MM-dd');

/** 文字列を日付に変換したい : 「-」のままだとiOSのSafariで失敗するそうな */
let string = '2021-02-17'
let date = new Date(string.replace(/-/g, '/'));
```

- 型を変換したい
    - [JavaScriptにおける数値⇔文字列の型変換あれこれ - console.lealog();](http://lealog.hateblo.jp/entry/2013/02/28/005010)
    - [型変換のいろいろ - Qiita](http://qiita.com/zawascript/items/a25eaf7a222ac3671275)
    - [文字列から数値へ変換。文字列から数値だけを取り出す。 - Qiita](http://qiita.com/simiraaaa/items/2fc2c10e041963fc34fc)
    - [date | AngularJS 1.2 日本語リファレンス | js STUDIO](http://js.studio-kingdom.com/angularjs/ng_filter/date)
    - [Date.parse() - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/parse)
    - [【JavaScript】iOS の Safari で Date() を new したら invalid date  - pospomeのプログラミング日記](https://www.pospome.work/entry/20140717/1405573306)
- 文字列の〇〇ケースに変換したい
    - [javascriptでキャメルケースとスネークケースの相互変換 - Qiita](http://qiita.com/thelarch/items/cc4707e1c7ef0d73ba73)
    - [アルファベットを大文字-小文字に変換する方法 - Qiita](http://qiita.com/jazzsasori/items/cc6ced482bb8f4d6a319)
    - [JavaScriptの文字列を全部小文字/大文字化する - Qiita](http://qiita.com/niusounds/items/fff91f3f236c31ca910f)
    - [JavaScriptを使ってスネークケース・キャメルケース・パスカルケースの変換 | WebDesign Dackel](http://webdesign-dackel.com/2015/05/15/js-change-case/)



# 文字列を〇〇したい
- [文字列の結合方法による速度差 - Qiita](https://qiita.com/ampersand/items/0322e0820badf2c020be)
- 置換したい
    - [JavaScriptで指定文字を置換、削除する方法](https://syncer.jp/javascript-reverse-reference/how-to-replace-text)
    - 空白削除したい
        - 前後だけはtrim
            - [JavaScript: 前後の空白を取り除く方法 - Qiita](http://qiita.com/suin/items/6ad348113cb610b69919)
        - 前後と間のときはreplace
            - [入力された文字列に含まれる空白文字を削除する - JavaScript TIPSふぁくとりー](http://www.nishishi.com/javascript/2013/trim-space-chars.html)
- 検索したい
    - [【JavaScript】～を含むかのチェック - Qiita](https://qiita.com/kazu56/items/557740f398e82fc881df)




# Google Apps Script : GAS
- GASのクラス
    - [Gmail Service &nbsp;|&nbsp; Apps Script &nbsp;|&nbsp; Google Developers](https://developers.google.com/apps-script/reference/gmail)
    - [Class UrlFetchApp &nbsp;|&nbsp; Apps Script &nbsp;|&nbsp; Google Developers](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app)
    - [Class GmailAttachment &nbsp;|&nbsp; Apps Script &nbsp;|&nbsp; Google Developers](https://developers.google.com/apps-script/reference/gmail/gmail-attachment)
    - [Class Utilities &nbsp;|&nbsp; Apps Script &nbsp;|&nbsp; Google Developers](https://developers.google.com/apps-script/reference/utilities/utilities)
- Gmailの検索
    - [Gmail で使用できる検索演算子 - Gmail ヘルプ](https://support.google.com/mail/answer/7190?topic=41&hl=ja)
    - [Google Apps ScriptでGmailの情報を取得する際に、受信日時を細かく指定する方法。 - Qiita](https://qiita.com/3mc/items/39b2c8241c6b52811ad2)
- GASの定期実行
    - [Google Apps Script で毎日決まった時間にスクリプトを実行するトリガー設定](https://tonari-it.com/gas-trigger-set/)
- 添付ファイル
    - [multipart/form-dataのリクエストで地味にハマったメモ - Qiita](https://qiita.com/Zaki_Tk/items/073f597d52f6fd8e3dcd)
    - [Review of My Life: multipart/form-dataのファイルをGoogle Apps Scriptから送信する](https://review-of-my-life.blogspot.com/2018/03/multipartform-data-google-apps-script.html)
    - [GASでGmailの添付ファイルをBacklogに送信したらファイル名が文字化けした時の対応方法 - Qiita](https://qiita.com/chovin/items/2cdfcbaa381faf8a1602)
    - [APIを使ってエラーになった時の原因記録 - Qiita](https://qiita.com/ponsuke0531/items/9f68e5b54846fdd444eb)










# いろいろ取得とか設定とか表示非表示活性非活性したい
- [jQueryで表示非表示活性非活性する方法 - Qiita](https://qiita.com/ponsuke0531/items/ed8dc7991311a9a2a5a7)
- [JavaScriptでいろいろ取得したい時に見てみるリンク集 - Qiita](https://qiita.com/ponsuke0531/items/802195cdb080182b71b9)









# ライブラリを使いたい

- 素敵なセレクトボックスを期待するSelect2
    - [はじめてのSelect2でマルチ選択できるセレクトボックスを作ってみる](https://qiita.com/ponsuke0531/items/9e71690caadc246e8f58)
- シャレオツなグラフを作るHighcharts
    - [Highchartsを使う時に参考になるサイト集](http://qiita.com/ponsuke0531/items/3254dc0bad1655199827)
- ある程度なグラフを作るjqPlot
    - [jqPlotでつくった折れ線グラグのX軸を日付にする方法](http://qiita.com/ponsuke0531/items/7610557b0042c45fb924)
    - [jqPlotで折れ線グラグにおけるY軸の特定の横線に色を付ける方法](http://qiita.com/ponsuke0531/items/c4bd2cee602b7a0d07fb)
- [C3.js | D3-based reusable chart library](https://c3js.org/reference.html)
- [Chart.js documentation](https://www.chartjs.org/docs/latest/)
    - Vue.jsで使うとき : [📈 vue-chartjs](https://vue-chartjs.org/)



# よくやることを忘れてしまった
```js:javaSctipt
// 要素作成:普通
document.createElement('タグ')
// 要素作成:jQuery
$('<タグ>');

// 要素の値設定:普通
要素オブジェクト.setAttribute('value', 値);
// 要素の値設定:jQuery
要素オブジェクト.val(値);

// 要素のHTML文字設定:普通
要素オブジェクト.innerHTML = 'HTML文字';
// 要素のHTML文字設定:jQuery
要素オブジェクト.html('HTML文字');

// 要素に子要素を追加:普通
要素オブジェクト.appendChild(子要素オブジェクト);
// 要素に子要素を追加:jQuery
要素オブジェクト.append(子要素オブジェクト);
```
- [jQueryにおけるcreateElement](http://mementoo.info/archives/647)
- [【jQuery】フォーム部品の取得・設定まとめ - Qiita](http://qiita.com/kazu56/items/36b025dac5802b76715c)
- alertで改行を入れたい
    - [【JavaScript】alertとconfirmダイアログの文章内で改行する - 怪しい物を開発するブログ](https://blog.supersonico.info/?p=643)


# 計算したい
```js:インクリメントとデクリメント
// これ使えます。
let a = 1;
a++;
++a;
a--;
--a;
```

```js:日付計算
let date = new Date();
// 1日足す
date.setDate(date.getDate() + 1);
```

- 端数処理したい
    - [JavaScriptで小数を四捨五入、切り捨て、切り上げする方法](https://syncer.jp/javascript-reverse-reference/processing-decimal-point)


# 変数と定数

```js:オブジェクトのキーに変数の値を設定したい
let customField = 'hoge'
// だめな書き方
let payload = {
    'summary' : '件名',
    'description' : '本文',
    customField : 'ぽんすけ'
};
// 大丈夫な書き方
let payload = {
    'summary' : '件名',
    'description' : '本文'
};
payload[customField] = 'ぽんすけ'
```

- [JavaScriptのオブジェクトのキーに変数の値を使うTips - Qiita](https://qiita.com/masarufuruya/items/d29a567d0ca4bbfb00cb)


## これって予約語だっけ？
- [予約語 - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Reserved_Words)
- [予約語 - JavaScriptの基本事項 - JavaScript入門](https://www.ajaxtower.jp/js/ini/index5.html)
- [JavaScriptのキーワードと予約語](http://www.geocities.co.jp/Technopolis/1051/keyword.html)
- [JavaScript の予約語 | Microsoft Docs](https://docs.microsoft.com/ja-jp/scripting/javascript/reference/javascript-reserved-words)

## 定数定義：const
> Internet Explorer 11 標準ドキュメント モードでサポートされています。ストア アプリ (Windows 8.1 および Windows Phone 8.1) でもサポートされます。「バージョン情報」を参照してください。
> Quirks、Internet Explorer 6 標準、Internet Explorer 7 標準、Internet Explorer 8 標準、Internet Explorer 9 標準、Internet Explorer 10 標準の各ドキュメント モードではサポートされません。Windows 8 ではサポートされません。
> [const ステートメント (JavaScript)](https://msdn.microsoft.com/ja-jp/library/dn251545%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)

- [const - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/const)
- [JavaScriptにおけるvar/let/constの使い分け](https://sbfl.net/blog/2016/07/14/javascript-var-let-const/)

## ブロックスコープ定義：let
>
Supported in the Internet Explorer 11 standards document mode. Also supported in Store apps (Windows 8.1 and Windows Phone 8.1). See Version Information.
 Not supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards, Internet Explorer 8 standards, Internet Explorer 9 standards, Internet Explorer 10 standards. Not supported in Windows 8. 
[let Statement (JavaScript) | Microsoft Docs](https://docs.microsoft.com/en-us/scripting/javascript/reference/let-statement-javascript)


## 配列を使いたい
```js
// 配列定義：new Array より [] のほうが望ましい。とSublimeLinterに言われた。
var arr = [];
var arr = [1, 2, 3];

// 要素数を数える：Javaと並走して実装していると()をつけたくなりますが不要です。
var count = arr.length;
```
- [new Array()と[]の違い - Qiita](http://qiita.com/Hiraku/items/d74690088dfa368875c9)
- 連想配列のlengthがおかしい！と思ったら使えないらしいです。
    - [【JavaScript】連想配列で要素数の取得 - Qiita](http://qiita.com/glaytomohiko/items/af4b025d7cd48c07266c)
- [多次元配列 - 配列 - JavaScript入門](https://www.ajaxtower.jp/js/array/index5.html)
- 配列への追加・削除・結合
    - [JavaScriptの配列の使い方まとめ。要素の追加,結合,取得,削除。 - Qiita](http://qiita.com/takeharu/items/d75f96f81ff83680013f)

```js:配列の空判定
if (配列.length) {
// 空([])ではない場合の処理
}
```

- [[JavaScript] 配列の存在チェック（空判定）は if (array.length) {...} でいいよって話](https://qiita.com/kozzzz/items/42108bc96b3a0e7c53d5)

```js:配列に値が含まれるか
if (配列.indexOf(確認するもの) != -1) {
// 含まれている場合の処理
}
```

- [jQueryによる要素の存在チェックまとめ: 小粋空間](http://www.koikikukan.com/archives/2012/04/18-022222.php)
- [[JS][jQuery] 要素の存在を確認する6通りのコードと実行速度 | きほんのき](http://kihon-no-ki.com/check-existence-element-by-javascript-and-jquery)
- [JavaScript で配列を判定する正しいやり方 - Qiita](https://qiita.com/38kun/items/8b1b91e998ef890e868c)

```js:ぐるぐるまわしたい
jQuery.each(配列かオブジェクト, function(Integer インデックスかハッシュkey, Object それぞれの値とかオブジェクト) {
  やりたい処理;
  return ぐるぐる回す条件(falseになれば止まる);
});
```

- [JavaScript Array.forEachとjQuery.eachの違い - Qiita](https://qiita.com/PianoScoreJP/items/07491c4c8a4714679f32)
- [jQueryのeach()メソッドの基本的な使い方 | UX MILK](http://uxmilk.jp/45120)
- [JavaScriptにおける連想配列のforループ操作 - Qiita](http://qiita.com/wifeofvillon/items/15359535a834832e08ea)
- [jQuery.each() | jQuery API Documentation](http://api.jquery.com/jquery.each/)
- [jQuery の each() の continue / break は・・・ - 地潜の日記](http://blog.livedoor.jp/jimuguri/archives/51522193.html)


# `<select>`ボックス製造隊
- [&lt;select size=&quot;行数&quot;&gt;&lt;option&gt; リストボックスを作成する -HTMLタグ辞典-](http://www.newcredge.com/IT/www/html/tag/form/select-size.html)
- [select 内の option 要素(セレクトボックス)を JavaScript で追加していく | Flashlight Mutous](http://isthmis.me/Blog/javascript-selectbox/)
- [調査メモ: bootstrap-selectを試してみる](http://kazunori-kimura.blogspot.jp/2013/06/bootstrap-select.html)
- [bootstrap-selectで1つだけ選択できるプルダウンリストを作る方法 - Qiita](https://qiita.com/ponsuke0531/items/3757176d3ef4e897bca6)
- [bootstrap-selectでプルダウンリストの選択肢が消えたりはみ出したりした時の対応方法 - Qiita](https://qiita.com/ponsuke0531/items/741cbbcc372ecb54e777)
- [スクロールできるダイアログでbootstrap-selectを使ったらリストが画面からはみ出して選択できなくなった時の対応方法 - Qiita](https://qiita.com/ponsuke0531/items/6e055428c33f7c644255)
- [bootstrap-select でドロップダウンリストが上向き表示時にリスト領域がfixedボックス位置で途切れた！containerオプションで対策 | サイト構築日記](http://memories.zal.jp/WP/blog/20160422_2728.html)
- [bootstrap-selectで作ったセレクトボックスを活性化できないときの対応方法 - Qiita](https://qiita.com/ponsuke0531/items/25d52ce55a93d44e59de)
- `<select>`ボックスの中身に配列を設定したい
    - jQueryは使わないで
        - [select 内の option 要素(セレクトボックス)を JavaScript で追加していく | Flashlight Mutous](http://isthmis.me/Blog/javascript-selectbox/)
    - jQueryを使って
        - [jQuery で select タグに option タグを追加する - Qiita](http://qiita.com/QUANON/items/5822f805d558ad078db3)
        - [$.map() | jQuery 1.9 日本語リファレンス | js STUDIO](http://js.studio-kingdom.com/jquery/utilities/map)

# リロードしても値を保持したい
## 単純にリロードしたくない場合

- [input type=submit でページを更新&quot;しない&quot;方法。 - Qiita](http://qiita.com/Phiyory18/items/cfa1c1c756c7f54e98ab)
    - [event.preventDefault - Web API インターフェイス | MDN](https://developer.mozilla.org/ja/docs/Web/API/Event/preventDefault)
    - [jQuery： イベント処理を中断するには？（preventDefault／stopPropagation／stopImmediatePropagation） - Build Insider](http://www.buildinsider.net/web/jqueryref/022)


## WebStorageを使ってみる

- [連載：人気順に説明する初めてのHTML5開発：ブラウザでストレージ？ Web Storageを使いこなそう - ＠IT](http://www.atmarkit.co.jp/ait/articles/1108/12/news093.html)
- :loudspeaker:オブジェクトをダイレクトに保存できません
    - [Web Storage使用上の注意点 | HTML5/CSS3, JavaScript 次世代WEB研究開発](http://lab.informarc.co.jp/html/webstorage.html)
- [Storageのデータを消去する－JavaScript入門（HTML5編）](http://www.pori2.net/html5/WebStorage/030.html)

# ファイルを〜したい
- [JavaScriptでファイルの入出力をしたい時に役立つリンク集 - Qiita](http://qiita.com/ponsuke0531/items/37ab0a10be42c0d202bb)

# 要素の操作
- [タグの種別を判別するには - 左脳Script](http://n-yagi.0r2.net/script/2009/06/post_11.html)
- [クリップボードへコピーをする方法 - Qiita](https://qiita.com/ponsuke0531/items/0fdeeb7f9dcd9385278d)

## 要素の幅を動的に変えたい

- [jQuery リファレンス：width](http://www.jquerystudy.info/reference/css/width.html)

## 要素を動的に追加したい

- [prependTo(content) - jQuery 日本語リファレンス](http://semooh.jp/jquery/api/manipulation/prependTo/content/)

# タブ表示にしたいとき
- [ページ移動せずに内容を変更するタブ機能の作り方 [ホームページ作成] All About](https://allabout.co.jp/gm/gc/23969/5/)

# テーブル
- [Javascriptでtableタグに行、列の追加や削除を行う | ScrapEngineer](http://scrap.php.xdomain.jp/javascript_table_control/)
- [jQueryでテーブルに行を追加する方法: 小粋空間](http://www.koikikukan.com/archives/2011/11/02-015555.php)
- [JavaScript / jQueryでtableの行を「追加」「削除」「移動」「変更」させる方法 | maesblog](http://mae.chab.in/archives/2146)
- [ボタンクリックでテーブルに行を追加する JavaScript | JavaScript | 阿部辰也のブログ――人生はひまつぶし。](http://www.abe-tatsuya.com/web_prog/javascript/add_table_rows.php)

## jQuery Templates << jQueryでテンプレートを使う
- [JavaScriptでヒアドキュメント | WEB業界で働く人や興味がある人に役立つ情報サイト“qam（カム）”](http://www.qam-web.com/?p=3323)
- [jquery.tmpl.jsの使い方まとめ - Qiita](http://qiita.com/hitonari45/items/44b2f985e6e30db4f0df)


# JSDocを書きたい
- [JSDoc使い方メモ - Qiita](http://qiita.com/opengl-8080/items/a36679f7926f4cac0a81)
    - JSDoc : 3.2.2
- [Google JavaScript スタイルガイド - 日本語訳 - JavaScriptのデータ型](https://www38.atwiki.jp/aias-jsstyleguide2/pages/17.html#js_type_language)
    - @param などでの型の書き方をお忘れのときに

# JavaScriptの読み込み

`<script ..... />` ではなく `<script....></script>` にしましょう。ついつい `/>` で閉じたくなります。
じゃ、外部CSSの読み込みに使う `<link>` は・・・・・

```html
</link>は問題外
HTML5 : 「/>」は基本なしで「/>」があってもOK
HTML4以前 : 「/>」は基本なしで「/>」をつけるのは非推奨
XHTML : 「/>」が必須
```

- [jQuery入門 - GoogleにホストされているjQueryファイルの読み込み - Webkaru](http://webkaru.net/jquery/google-hosted-file-load/)
- [scriptタグを&amp;lt;script src=&quot;～&quot; /&amp;gt;って書くと、なんで上手くいかないかまとめてみた - かせいさんとこ](http://d.hatena.ne.jp/kasei_san/20090616/p1)
- [HTML5でも&lt;script src=&quot;hoge.js&quot;&gt;&lt;/script&gt;としなければならない理由は何か？ - C++ ときどき ごはん、わりとてぃーぶれいく☆](http://usagi.hatenablog.jp/entry/2012/04/01/114059)
- [scriptタグは空要素っぽく閉じると，FirefoxやIEで読んでもらえない ::ハブろぐ](https://havelog.ayumusato.com/develop/html/e216-script_tag_should_not_self-close.html)
- [&lt;link&gt;－HTML5タグリファレンス](http://www.htmq.com/html5/link.shtml)
- [HTML5って「/&gt;」って不要だよね？ 空要素の最後にスラッシュ必要か？ &#8211; 76bit Cafe](http://cafe.76bit.com/creative/web-design/2252/)

## CDNが書いてあるところを忘れた
- [いろいろあるGoogle Hosted Libraries](https://developers.google.com/speed/libraries/#jquery)
- [jQuery CDN](https://code.jquery.com/)
- [Using Select2 from a CDN](https://select2.org/getting-started/installation)
- [Quick Start · BootstrapCDN by StackPath](https://www.bootstrapcdn.com/)

```html:CDN
// Vue.js
<script src="https://unpkg.com/vue"></script>

// jQuery(jQuery CDN)
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
// jQuery(Google Hosted Libraries)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

// jQuery-UI(jQuery CDN)
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>

// bootstrap(MaxCDN)
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

// bootstrap-select(CDNJS)
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/css/bootstrap-select.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/js/bootstrap-select.min.js"></script>

```

# 判定
## 値を判定したいとき
```js
let a = 何か;
if(a) {
    // [](配列), {}(オブジェクト), -1(数値)
} else {
    // "00"(文字：はまった・・・)
    // ""(文字), 0(数値), false(真偽), undefined, null
}
```


- [[JavaScript] null とか undefined とか 0 とか 空文字(&#39;&#39;) とか false とかの判定について - Qiita](http://qiita.com/phi/items/723aa59851b0716a87e3)
    - !value みたいな書き方はすごく使うのに空文字とか空の配列がどっちになるかすぐ忘れてしまいます:rolling_eyes:

## NaNを判定したい

- [NaNの判定について - Qiita](http://qiita.com/south37/items/e400a3a698957ab4aa7a)
    - isNaN と Number.isNaN があることを勉強できました。

## 要素の状態を判定したいとき

- [jQueryで要素の表示・非表示を判定する方法: 小粋空間](http://www.koikikukan.com/archives/2012/08/03-012345.php)
- [jQueryで要素がdisabledかどうかを判定する - Qiita](http://qiita.com/kabane/items/da29a99221b45b4442d3)
- [jQueryでdisabledの設定･解除･判定をする方法](http://www.flatflag.nir87.com/disabled-1783)

## 型を判定したいとき

- [JavaScriptの「型」の判定について - Qiita](http://qiita.com/south37/items/c8d20a069fcbfe4fce85)
- [JavaScriptでオブジェクトの型を判別するのにtypeof演算子使うとツラいよね - Qiita](http://qiita.com/Layzie/items/465e715dae14e2f601de)

## switch文
> 式と値が一致するかどうかは「==」演算子ではなく「===」演算子によって比較されます。
> [switch文 - 条件分岐 - JavaScript入門](https://www.ajaxtower.jp/js/if/index4.html)

## 入力チェックしたい
- [Javascriptで入力チェック（半角英数字） &#8211; REONTOSANTA](http://knowledge.reontosanta.com/archives/469)
- [忘れっぽい人のための正規表現チートシート - Qiita](http://qiita.com/tossh/items/635aea9a529b9deb3038)
- [正規表現 - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions)


# イベント
- [jQuery 便利なonを使おう（on click) - Qiita](http://qiita.com/shizuma/items/d561f37f864c3ebb5096)
    - on だけではなく bind / live / delegate についても成る程な説明があります。
- [jQuery.on()は追加式なのでイベントの重複登録に注意しよう - Qiita](http://qiita.com/nekoneko-wanwan/items/3d3da95f1127f743397d)
- [jQueryで登録済みイベントハンドラを一覧する方法 - それマグで！](http://takuya-1st.hatenablog.jp/entry/2014/04/05/042658)
- [jQuery UIのDatepickerを閉じた時にイベントを実行したい - Qiita](https://qiita.com/chovin/items/38d11638a62be5d370ac)


# HTMLでの属性
- [HTMLのタグに属性を書く時に先頭に来るのはidとclassどちらか気になったのでいろいろ見てみた。](https://qiita.com/ponsuke0531/items/2b15e37b2f46169a1224)
- [aタグに付いているrel=&quot;noopener&quot;って何？ | ocws BLOG](https://ocws.jp/blog/post1974/)


# IDEくさいものを使いたい
- [Sublime Text - Qiita](https://qiita.com/ponsuke0531/items/3d06cff74fd0daafddd9#javascript)
- [Visual Studio Code - Qiita](https://qiita.com/ponsuke0531/items/0d696eae286d1206baf9)

# 困った
- [JavaScript 構文エラー](https://msdn.microsoft.com/ja-jp/library/6bby3x2e(v=vs.94).aspx)
- [ボタンでクリップボードからテキストボックスにコピー内容を貼付ける事ができなかった記録 - Qiita](https://qiita.com/ponsuke0531/items/a15586ad8266d9c4535f)
- [ウィンドウを閉じるときに任意のメッセージを設定したダイアログを表示する事ができなかった記録 - Qiita](https://qiita.com/ponsuke0531/items/bbcf6f5225137dd3ab5f)
- [Provisional headers are shown - Qiita](https://qiita.com/ponsuke0531/items/c5f2d61cd04e5b736f34)
- [error Command "dev" not found. - Qiita](https://qiita.com/ponsuke0531/items/c3baa8851fa4e6872b2d)
- [Uncaught TypeError: Vue is not a constructor - Qiita](https://qiita.com/ponsuke0531/items/03771a35aa04e7b8486d)

## XMLHttpRequest cannot load xxxxx.***
:construction_worker_tone3:Chrome:construction_worker_tone1:では$.getJSONでローカルにあるJSONファイルが読めないらしいです。

```JavaScript
    $.getJSON('ローカルのJSONファイル', function(data) {
        処理
    });
```

こう書いてChromeで実行したら:sob:怒られました。

```
XMLHttpRequest cannot load ローカルのJSONファイル. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
```

英語がわからないのでGoogle翻訳してみました。

```和訳
XMLHttpRequestはローカルのJSONファイルを読み込めません。Cross origin要求は、http、data、chrome、chrome-extension、https、chrome-extension-resourceのプロトコルスキームでのみサポートされています。
```
- [[*その他*] ChromeにてAjaxでローカルファイルにアクセス - Qiita](http://qiita.com/cigalecigales/items/33afaa42f91542ffa62e)
- [Google Chromeでは(Ajaxで)ローカルファイルにアクセスしようとするとエラーになることについて、他 - エンジニアのソフトウェア的愛情](http://d.hatena.ne.jp/E_Mattsan/20110203/1296733948)
- [ローカル(file:///)上で外部ファイル読み込みのセキュリティ制約を回避するいくつかの方法 - Qiita](http://qiita.com/nissuk/items/1ede2953a8661dc59214)

## SyntaxError: Unexpected token ] in JSON at position xxx
JSON.pase(jsonObj); したら怒られた。jsonObjはこんな感じで書いた。

```json
[
    {"companyId":"a","companyName":"えー"},
    {"companyId":"b","companyName":"びー"},
]
```
２個めの「,」が余計だった・・・JSONをノリで書くのはいけません。

- [JSON/ja - Free Pascal wiki](http://wiki.freepascal.org/JSON/ja)
- [もう一度、ちゃんとJSON入門 - 檜山正幸のキマイラ飼育記](http://d.hatena.ne.jp/m-hiyama/20080728/1217205390)
- [JavaScript/JSONの書き方 - インターネットウィキ](http://kimoota.wiki.fc2.com/wiki/JavaScript%2FJSON%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9)
- [JSON](http://www.json.org/json-ja.html)