javascript2
問題一覧
1
UTF16 コードポイントがU+FFFF以上の文字の場合は、コードユニット二つ(サロゲートペア)で表されるため、 サロゲートペアで表される文字列は2文字としてカウントされてしまう。 console.log(“吉野家”.length); これは吉が二文字なので合計4文字
2
indexOfをつかう あったらその開始位置をかえす (0以降) なかったら-1をかえす var str = "abcde"; var idx = str.indexOf("bcd"); console.log(idx);
3
1
4
slice substring charAt
5
sliceは引数に-が許可され、後ろからを開始位置とすることができる
6
cde 後ろから数える時は1から(eとdの間なら数える) 前から数える時は0なので注意(aの前から) つまり後ろから3番目(bとcの間) 前から5番目(eのうしろ) なので cde
7
“0000”と数値を足せば、数値は暗黙的に文字列へ変換されるので、そこからマイナス値でスライスすればよい var num = 1234; //0詰めする数字 var result = ("00000" + num).slice(-5); //できた文字列 console.log(result);
8
/n でよい var a = "foo\nbar";
9
まず正規表現オブジェクトを作成する 正規表現リテラルで作成可能 /ここに正規表現をかく/ /ab+c/
10
正規表現オブジェクト.test(文字列) 真偽値がかえる if( /bcd/.test("abcde") ){ console.log("マッチしました"); }else{ console.log("マッチしませんでした"); }
11
{m,n}のように2つの数値を区切って書いたとき、直 前の文字をm回以上n回以下繰り返した文字列にマッチします。 つまりbが2回以上5回以下繰り返した文字列にマッチ ab{2,}c
12
saveメソッドは現在の描画スタイル設定(描画したものは保存されない)を保存する。 リストアはそれを復元できる。
13
"(?:)"を記述した場合は()内でマッチしたパターンが保持されない動作になる点が異なります。 つまり、¥1で置換したときにグループ内の文字列がでてこないってこと
14
aaa|bbb
15
/d
16
空白文字(半角スペース、\t、\n、\r、\f)すべて
17
大文字は反対の意味になる つまり空白文字以外、数字以外となる
18
.は改行文字はマッチしないけど、 [\s\S]は改行文字にもマッチする!!
19
Wordまでが選択されてカーソルはWordの後にくる
20
少なくとも大文字の英字が存在するパターンがある場合(後方一致) 最初の5文字を選択する 例えばabcdeaaAaaaaでマッチしてカーソルが最初に戻って .{5}で5文字(最初のabcde)にヒット!
21
前方一致 肯定後読みともいう pe が前に存在するScriptでマッチし カーソルはpeとScriptの間に戻る
22
文字列.match(正規表現オブジェクト) 返り値は文字列のリスト ¥0 ¥1が配列にはいってくるかんじ
23
文字列.replace(正規表現オブジェクト) 戻り値は置き換えた後の文字列
24
正規表現オブジェクトをつくるときにi フラグをつける "ABCDE".match(/abc/i)
25
gフラグを正規表現オブジェクトにつける "aaa1234bcd567efg8999h".match(/\d+/g) で返ってくる配列は["1234", "567", "8999"]となる キャプチャ(¥1 ¥2みたいなやつ)は行われなくなる gオプションがついていない場合は、0番目の要素にはマッチした文字列全体が、1番目以降にはグループ化した箇所の文字列が入っている。 gフラグがつくと、マッチした文字列が、0番目から順番に入っているようになります
26
$1は1番目の(つまり最初の)グループ化に対応します。グループ化が2つ以上あるなら、$2、$3、 マッチした部分文字列の全体は$&
27
"aaa1234bcd567efg8889h".replace(/\d+/g, function(str){ return "数" + str + "字"; }); // "aaa数1234字bcd数567字efg数8889字h"
28
数1234字を1234に変換していく replaceで第二引数は関数を利用する 関数の引数は 第一引数はmatch 一致した部分文字列(上記の $& に対応)です。 第二引数以降は p1, p2, …, pN キャプチャグループ(名前付きキャプチャグループを含む)で見つかった n 番目の文字列 なので、数字だけグループ化して第二引数だけを返すようにする "aaa数1234字bcd数567字efg数8889字h".replace(/数(\d+)字/g, function(str, num){ return num; }); https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace#%E7%BD%AE%E6%8F%9B%E6%96%87%E5%AD%97%E5%88%97%E3%81%A8%E3%81%97%E3%81%A6%E3%81%AE%E9%96%A2%E6%95%B0%E3%81%AE%E6%8C%87%E5%AE%9A
29
細かい図形をオブジェクトとして定義し、 drawメソッドをプロパティに用意する。 Contextクラスを用意して、上記のオブジェクトをインポートする。 そこでcanvasオブジェクトをハンドリングし、インポートとしたオブジェクトをインスタンスしていく。 描画対象のオブジェクトはリストで管理し、 それらを繰り返し処理で、内部のdrawメソッドを呼び出していく
30
どのまとまりをオブジェクト単位とするか考える オブジェクト内部でオブジェクトを利用してもいいので、部品化みたいな感じ それぞれの部品で、インタフェース(プロパティ)やふるまい(メソッド)と定義する 上記オブジェクトを扱うハンドリング用のシングルトンなオブジェクトを定義する。 ハンドラーやコンテキストみたいな命名とする。
31
“use strict”をスクリプトの先頭に書く。 何が変わるかについてはここにかいてある https://analogic.jp/use-strict/
32
JavaScriptの正しいコーディングのみを許可するモード
33
a button input textarea などのインタラクティブ要素にフォーカスが行われる
34
tabindex属性を付与し、 値は0に設定する
35
0か-1のみ -1だと、キーボードナビゲーション対象から削除される
36
document.defaultView でとれる
37
JavaScriptコードが動作しているWebブラウザのウィンドウまたはフレームを表します。 アラートなどダイアログボックスを表示させたり、ウィンドウのオープン、クローズするなどのメソッドがある。 https://so-zou.jp/web-app/tech/programming/javascript/window/
38
Window.getComputedStyle(p, null) を利用する ※第一引数は、Elementオブジェクトを指定する 戻り値はCSSStyleDeclaration
39
書き換えできない
40
第二引数で。擬似要素を指定できる Window.getComputedStyle(p, "::first-letter") ちなみに:hoverなど擬似クラスはとれない
41
グローバル変数の格納先はWindowオブジェクトなので、 var str=“foo” はwindow.strで参照できてしまう。 また、window.getComputedStyleは 単にgetComputedStyleともかける ただ、windowオブジェクトのプロパティはちゃんと明示的にかいたほうがいい
42
<style>〜</style>の間を表すオブジェクト 1 枚の CSS スタイルシートを表し、そのスタイルシートに含まれるルールのリストを調べたり変更したりすることができます 。 StyleSheet が親で、プロパティとメソッドを継承しています。
43
1 ドキュメントから取得する ドキュメントはスタイルシートをコレクション形式でプロパティで管理している。 var sheet = document.styleSheets.item(0); document.styleSheets[0]ともかける 2.スタイル要素を取得してからsheetプロパティで取得する var style = document.getElementById('mysheet'); console.log(style.sheet);
44
CSSStyleSheetオブジェクトのownerNodeとは、そのCSSStyleSheetのもととなるノードで、今回の場合、このCSSStyleSheetはstyle要素によって作られたから、style要素のノードが入っています
45
CSSRuleインターフェースを継承するオブジェクト 色々種類がある CSSStyleSheet.cssRulesプロパティでコレクション形式で取得できる。 つまり、sheet.cssRules[0]で取得できる。 https://developer.mozilla.org/ja/docs/Web/API/CSSRule
46
cssTextプロパティを利用すれば 読み取り専用で、取得できる。 例 var cssrule = document.styleSheets.item(0).cssRules.item(0); console.log(cssrule.cssText); で、 body { background-color: aqua; }がかえる
47
1 CSSStyleRule h1 { color: pink; } みたいなやつ 2 CSSMediaRule @media (min-width: 500px) { body { color: blue; } } みたいなやつ 他にも色々ある。 https://developer.mozilla.org/ja/docs/Web/API/CSSRule
48
CSSStyleRuleのselectorTextプロパティを利用する。 let myRules = document.styleSheets[0].cssRules; console.log(myRules[0].selectorText); // a string containing "h1".
49
できる!! セレクタは変更できる
50
styleプロパティを利用する 取得されるのはCSSStyleDeclarationオブジェクトである。 let myRules = document.styleSheets[0].cssRules; console.log(myRules[0].style); // a CSSStyleDeclaration representing the declarations on the h1. CSSStyleDeclarationなので、以下のように変更もできる。 myRules[0].style.color = "blue";
51
CSSStyleDecorationのsetPropertyメソッドを利用する cssrule.style.setProperty("background-color","blue"); で書き換え可能 第一引数がプロパティ名で、第二引数に値を設定可能
52
文字列で、"important"を指定することができる。 background-color: blue !important;
53
getPropertyValueメソッド cssrule.style.getPropertyValue("background-color")で、 ”blue"あるいは"#0000ffなどの値が返ってきます。返り値は常に文字列で、もしそのプロパティがセットされていなかったら""が返ってきます。
54
スタイルシートそのものCSSStyleSheet(StyleSheetを継承) bodyとか、divとかpとか CSSStyleRule(CSSRuleを継承) background-color: aqua;の部分 CSSStyleDecation
55
CSSstyleDecationのメソッドで、 getPropertyPriorityを利用する。 getPropertyPriority("background-color")で、importantの部分のとこが取得できる もしなければこれまた""が返ってきます。
56
removePropertyメソッドを利用する。 cssrule.style.removeProperty("background-color");
57
CSSStyleDeclarationはコレクションでもあるため、 LengthやItemがつかえる cssrule.style.item(0)(またはcssrule.style[0]は"background-color"が返ります
58
配列ライクなオブジェクト イテラブルほど配列のメソッドをサポートしていない。 以下のようなオブジェクトが配列ライク 添字アクセスできる。 let arrayLike = { // インデックスとlengthを持っている => 配列ライク 0: "Hello", 1: "World", length: 2 }; // エラー (Symbol.iterator はないので) for (let item of arrayLike) {}
その他
その他
谷峻輔 · 12問 · 2年前その他
その他
12問 • 2年前LWC
LWC
谷峻輔 · 100問 · 2年前LWC
LWC
100問 • 2年前LWC2
LWC2
谷峻輔 · 28問 · 2年前LWC2
LWC2
28問 • 2年前Javascript
Javascript
谷峻輔 · 100問 · 2年前Javascript
Javascript
100問 • 2年前js1 JavaScript の基礎
js1 JavaScript の基礎
谷峻輔 · 92問 · 2年前js1 JavaScript の基礎
js1 JavaScript の基礎
92問 • 2年前js2 コード品質、オブジェクト基本、データ型
js2 コード品質、オブジェクト基本、データ型
谷峻輔 · 100問 · 2年前js2 コード品質、オブジェクト基本、データ型
js2 コード品質、オブジェクト基本、データ型
100問 • 2年前js3 データ型
js3 データ型
谷峻輔 · 100問 · 2年前js3 データ型
js3 データ型
100問 • 2年前js4 データ型、関数の高度な機能
js4 データ型、関数の高度な機能
谷峻輔 · 100問 · 2年前js4 データ型、関数の高度な機能
js4 データ型、関数の高度な機能
100問 • 2年前js5 関数の高度な機能 オブジェクトプロパティの設定 プロトタイプ, 継承プロトタイプ, 継承、クラス
js5 関数の高度な機能 オブジェクトプロパティの設定 プロトタイプ, 継承プロトタイプ, 継承、クラス
谷峻輔 · 96問 · 2年前js5 関数の高度な機能 オブジェクトプロパティの設定 プロトタイプ, 継承プロトタイプ, 継承、クラス
js5 関数の高度な機能 オブジェクトプロパティの設定 プロトタイプ, 継承プロトタイプ, 継承、クラス
96問 • 2年前js6 クラス Promise, async/await
js6 クラス Promise, async/await
谷峻輔 · 100問 · 2年前js6 クラス Promise, async/await
js6 クラス Promise, async/await
100問 • 2年前js7 Promise, async/await、ジェネレータ, 高度なイテレーション、モジュール
js7 Promise, async/await、ジェネレータ, 高度なイテレーション、モジュール
谷峻輔 · 96問 · 2年前js7 Promise, async/await、ジェネレータ, 高度なイテレーション、モジュール
js7 Promise, async/await、ジェネレータ, 高度なイテレーション、モジュール
96問 • 2年前js8 その他
js8 その他
谷峻輔 · 57問 · 2年前js8 その他
js8 その他
57問 • 2年前Javaとは〜
Javaとは〜
谷峻輔 · 83問 · 2年前Javaとは〜
Javaとは〜
83問 • 2年前Reactクイックスタート
Reactクイックスタート
谷峻輔 · 15問 · 2年前Reactクイックスタート
Reactクイックスタート
15問 • 2年前デザインパターン
デザインパターン
谷峻輔 · 5問 · 2年前デザインパターン
デザインパターン
5問 • 2年前承認申請
承認申請
谷峻輔 · 16問 · 2年前承認申請
承認申請
16問 • 2年前アプリケーションビルダー2
アプリケーションビルダー2
谷峻輔 · 100問 · 2年前アプリケーションビルダー2
アプリケーションビルダー2
100問 • 2年前アプリケーションビルダー3
アプリケーションビルダー3
谷峻輔 · 100問 · 2年前アプリケーションビルダー3
アプリケーションビルダー3
100問 • 2年前アプリケーションビルダー4
アプリケーションビルダー4
谷峻輔 · 100問 · 2年前アプリケーションビルダー4
アプリケーションビルダー4
100問 • 2年前アプリケーションビルダー5
アプリケーションビルダー5
谷峻輔 · 94問 · 2年前アプリケーションビルダー5
アプリケーションビルダー5
94問 • 2年前アプリケーションビルダー6
アプリケーションビルダー6
谷峻輔 · 100問 · 2年前アプリケーションビルダー6
アプリケーションビルダー6
100問 • 2年前アプリケーションビルダー7
アプリケーションビルダー7
谷峻輔 · 100問 · 2年前アプリケーションビルダー7
アプリケーションビルダー7
100問 • 2年前アプリケーションビルダー8
アプリケーションビルダー8
谷峻輔 · 98問 · 2年前アプリケーションビルダー8
アプリケーションビルダー8
98問 • 2年前アプリケーションビルダー9
アプリケーションビルダー9
谷峻輔 · 70問 · 2年前アプリケーションビルダー9
アプリケーションビルダー9
70問 • 2年前フロー
フロー
谷峻輔 · 42問 · 2年前フロー
フロー
42問 • 2年前レポート、ダッシュボード
レポート、ダッシュボード
谷峻輔 · 60問 · 2年前レポート、ダッシュボード
レポート、ダッシュボード
60問 • 2年前SalesCloud
SalesCloud
谷峻輔 · 18問 · 2年前SalesCloud
SalesCloud
18問 • 2年前標準機能
標準機能
谷峻輔 · 72問 · 2年前標準機能
標準機能
72問 • 2年前宣言的開発
宣言的開発
谷峻輔 · 8問 · 2年前宣言的開発
宣言的開発
8問 • 2年前数式、人力規則
数式、人力規則
谷峻輔 · 18問 · 2年前数式、人力規則
数式、人力規則
18問 • 2年前アクセスレベル
アクセスレベル
谷峻輔 · 63問 · 2年前アクセスレベル
アクセスレベル
63問 • 2年前データ型変換
データ型変換
谷峻輔 · 22問 · 2年前データ型変換
データ型変換
22問 • 2年前オブジェクト、項目
オブジェクト、項目
谷峻輔 · 91問 · 2年前オブジェクト、項目
オブジェクト、項目
91問 • 2年前アプリ、タブ
アプリ、タブ
谷峻輔 · 92問 · 2年前アプリ、タブ
アプリ、タブ
92問 • 2年前自動化
自動化
谷峻輔 · 17問 · 2年前自動化
自動化
17問 • 2年前組織、開発モデル
組織、開発モデル
谷峻輔 · 65問 · 2年前組織、開発モデル
組織、開発モデル
65問 • 2年前ボタン、アクション
ボタン、アクション
谷峻輔 · 69問 · 2年前ボタン、アクション
ボタン、アクション
69問 • 2年前インテグレーション
インテグレーション
谷峻輔 · 40問 · 2年前インテグレーション
インテグレーション
40問 • 2年前ページレイアウト、リストビュー、レコードタイプ、プロセス
ページレイアウト、リストビュー、レコードタイプ、プロセス
谷峻輔 · 46問 · 2年前ページレイアウト、リストビュー、レコードタイプ、プロセス
ページレイアウト、リストビュー、レコードタイプ、プロセス
46問 • 2年前標準オブジェクト
標準オブジェクト
谷峻輔 · 42問 · 2年前標準オブジェクト
標準オブジェクト
42問 • 2年前ServiceCloud
ServiceCloud
谷峻輔 · 16問 · 2年前ServiceCloud
ServiceCloud
16問 • 2年前ユーザ、ライセンス、プロファイル、権限セット
ユーザ、ライセンス、プロファイル、権限セット
谷峻輔 · 41問 · 2年前ユーザ、ライセンス、プロファイル、権限セット
ユーザ、ライセンス、プロファイル、権限セット
41問 • 2年前データインポート、エクスポート
データインポート、エクスポート
谷峻輔 · 3回閲覧 · 12問 · 2年前データインポート、エクスポート
データインポート、エクスポート
3回閲覧 • 12問 • 2年前Chatter
Chatter
谷峻輔 · 21問 · 2年前Chatter
Chatter
21問 • 2年前承認申請
承認申請
谷峻輔 · 15問 · 2年前承認申請
承認申請
15問 • 2年前フロー
フロー
谷峻輔 · 44問 · 2年前フロー
フロー
44問 • 2年前レポート、ダッシュボード
レポート、ダッシュボード
谷峻輔 · 65問 · 2年前レポート、ダッシュボード
レポート、ダッシュボード
65問 • 2年前SalesCloud
SalesCloud
谷峻輔 · 18問 · 2年前SalesCloud
SalesCloud
18問 • 2年前標準機能
標準機能
谷峻輔 · 72問 · 2年前標準機能
標準機能
72問 • 2年前宣言的開発
宣言的開発
谷峻輔 · 8問 · 2年前宣言的開発
宣言的開発
8問 • 2年前アクセスレベル
アクセスレベル
谷峻輔 · 52問 · 2年前アクセスレベル
アクセスレベル
52問 • 2年前数式、人力規則
数式、人力規則
谷峻輔 · 17問 · 2年前数式、人力規則
数式、人力規則
17問 • 2年前データ型変換
データ型変換
谷峻輔 · 22問 · 2年前データ型変換
データ型変換
22問 • 2年前オブジェクト、項目
オブジェクト、項目
谷峻輔 · 89問 · 2年前オブジェクト、項目
オブジェクト、項目
89問 • 2年前アプリ、タブ
アプリ、タブ
谷峻輔 · 100問 · 2年前アプリ、タブ
アプリ、タブ
100問 • 2年前自動化
自動化
谷峻輔 · 18問 · 2年前自動化
自動化
18問 • 2年前組織、開発モデル
組織、開発モデル
谷峻輔 · 60問 · 2年前組織、開発モデル
組織、開発モデル
60問 • 2年前ボタン、アクション
ボタン、アクション
谷峻輔 · 69問 · 2年前ボタン、アクション
ボタン、アクション
69問 • 2年前インテグレーション
インテグレーション
谷峻輔 · 40問 · 2年前インテグレーション
インテグレーション
40問 • 2年前ページレイアウト、リストビュー、レコードタイプ、プロセス
ページレイアウト、リストビュー、レコードタイプ、プロセス
谷峻輔 · 44問 · 2年前ページレイアウト、リストビュー、レコードタイプ、プロセス
ページレイアウト、リストビュー、レコードタイプ、プロセス
44問 • 2年前標準オブジェクト
標準オブジェクト
谷峻輔 · 32問 · 2年前標準オブジェクト
標準オブジェクト
32問 • 2年前ServiceCloud
ServiceCloud
谷峻輔 · 17問 · 2年前ServiceCloud
ServiceCloud
17問 • 2年前ユーザ、ライセンス、プロファイル、権限セット
ユーザ、ライセンス、プロファイル、権限セット
谷峻輔 · 18問 · 2年前ユーザ、ライセンス、プロファイル、権限セット
ユーザ、ライセンス、プロファイル、権限セット
18問 • 2年前データインポート、エクスポート
データインポート、エクスポート
谷峻輔 · 11問 · 2年前データインポート、エクスポート
データインポート、エクスポート
11問 • 2年前Chatter
Chatter
谷峻輔 · 21問 · 2年前Chatter
Chatter
21問 • 2年前一時
一時
谷峻輔 · 89問 · 2年前一時
一時
89問 • 2年前一時2
一時2
谷峻輔 · 29問 · 2年前一時2
一時2
29問 • 2年前js9 ドキュメント
js9 ドキュメント
谷峻輔 · 80問 · 2年前js9 ドキュメント
js9 ドキュメント
80問 • 2年前問題一覧
1
UTF16 コードポイントがU+FFFF以上の文字の場合は、コードユニット二つ(サロゲートペア)で表されるため、 サロゲートペアで表される文字列は2文字としてカウントされてしまう。 console.log(“吉野家”.length); これは吉が二文字なので合計4文字
2
indexOfをつかう あったらその開始位置をかえす (0以降) なかったら-1をかえす var str = "abcde"; var idx = str.indexOf("bcd"); console.log(idx);
3
1
4
slice substring charAt
5
sliceは引数に-が許可され、後ろからを開始位置とすることができる
6
cde 後ろから数える時は1から(eとdの間なら数える) 前から数える時は0なので注意(aの前から) つまり後ろから3番目(bとcの間) 前から5番目(eのうしろ) なので cde
7
“0000”と数値を足せば、数値は暗黙的に文字列へ変換されるので、そこからマイナス値でスライスすればよい var num = 1234; //0詰めする数字 var result = ("00000" + num).slice(-5); //できた文字列 console.log(result);
8
/n でよい var a = "foo\nbar";
9
まず正規表現オブジェクトを作成する 正規表現リテラルで作成可能 /ここに正規表現をかく/ /ab+c/
10
正規表現オブジェクト.test(文字列) 真偽値がかえる if( /bcd/.test("abcde") ){ console.log("マッチしました"); }else{ console.log("マッチしませんでした"); }
11
{m,n}のように2つの数値を区切って書いたとき、直 前の文字をm回以上n回以下繰り返した文字列にマッチします。 つまりbが2回以上5回以下繰り返した文字列にマッチ ab{2,}c
12
saveメソッドは現在の描画スタイル設定(描画したものは保存されない)を保存する。 リストアはそれを復元できる。
13
"(?:)"を記述した場合は()内でマッチしたパターンが保持されない動作になる点が異なります。 つまり、¥1で置換したときにグループ内の文字列がでてこないってこと
14
aaa|bbb
15
/d
16
空白文字(半角スペース、\t、\n、\r、\f)すべて
17
大文字は反対の意味になる つまり空白文字以外、数字以外となる
18
.は改行文字はマッチしないけど、 [\s\S]は改行文字にもマッチする!!
19
Wordまでが選択されてカーソルはWordの後にくる
20
少なくとも大文字の英字が存在するパターンがある場合(後方一致) 最初の5文字を選択する 例えばabcdeaaAaaaaでマッチしてカーソルが最初に戻って .{5}で5文字(最初のabcde)にヒット!
21
前方一致 肯定後読みともいう pe が前に存在するScriptでマッチし カーソルはpeとScriptの間に戻る
22
文字列.match(正規表現オブジェクト) 返り値は文字列のリスト ¥0 ¥1が配列にはいってくるかんじ
23
文字列.replace(正規表現オブジェクト) 戻り値は置き換えた後の文字列
24
正規表現オブジェクトをつくるときにi フラグをつける "ABCDE".match(/abc/i)
25
gフラグを正規表現オブジェクトにつける "aaa1234bcd567efg8999h".match(/\d+/g) で返ってくる配列は["1234", "567", "8999"]となる キャプチャ(¥1 ¥2みたいなやつ)は行われなくなる gオプションがついていない場合は、0番目の要素にはマッチした文字列全体が、1番目以降にはグループ化した箇所の文字列が入っている。 gフラグがつくと、マッチした文字列が、0番目から順番に入っているようになります
26
$1は1番目の(つまり最初の)グループ化に対応します。グループ化が2つ以上あるなら、$2、$3、 マッチした部分文字列の全体は$&
27
"aaa1234bcd567efg8889h".replace(/\d+/g, function(str){ return "数" + str + "字"; }); // "aaa数1234字bcd数567字efg数8889字h"
28
数1234字を1234に変換していく replaceで第二引数は関数を利用する 関数の引数は 第一引数はmatch 一致した部分文字列(上記の $& に対応)です。 第二引数以降は p1, p2, …, pN キャプチャグループ(名前付きキャプチャグループを含む)で見つかった n 番目の文字列 なので、数字だけグループ化して第二引数だけを返すようにする "aaa数1234字bcd数567字efg数8889字h".replace(/数(\d+)字/g, function(str, num){ return num; }); https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace#%E7%BD%AE%E6%8F%9B%E6%96%87%E5%AD%97%E5%88%97%E3%81%A8%E3%81%97%E3%81%A6%E3%81%AE%E9%96%A2%E6%95%B0%E3%81%AE%E6%8C%87%E5%AE%9A
29
細かい図形をオブジェクトとして定義し、 drawメソッドをプロパティに用意する。 Contextクラスを用意して、上記のオブジェクトをインポートする。 そこでcanvasオブジェクトをハンドリングし、インポートとしたオブジェクトをインスタンスしていく。 描画対象のオブジェクトはリストで管理し、 それらを繰り返し処理で、内部のdrawメソッドを呼び出していく
30
どのまとまりをオブジェクト単位とするか考える オブジェクト内部でオブジェクトを利用してもいいので、部品化みたいな感じ それぞれの部品で、インタフェース(プロパティ)やふるまい(メソッド)と定義する 上記オブジェクトを扱うハンドリング用のシングルトンなオブジェクトを定義する。 ハンドラーやコンテキストみたいな命名とする。
31
“use strict”をスクリプトの先頭に書く。 何が変わるかについてはここにかいてある https://analogic.jp/use-strict/
32
JavaScriptの正しいコーディングのみを許可するモード
33
a button input textarea などのインタラクティブ要素にフォーカスが行われる
34
tabindex属性を付与し、 値は0に設定する
35
0か-1のみ -1だと、キーボードナビゲーション対象から削除される
36
document.defaultView でとれる
37
JavaScriptコードが動作しているWebブラウザのウィンドウまたはフレームを表します。 アラートなどダイアログボックスを表示させたり、ウィンドウのオープン、クローズするなどのメソッドがある。 https://so-zou.jp/web-app/tech/programming/javascript/window/
38
Window.getComputedStyle(p, null) を利用する ※第一引数は、Elementオブジェクトを指定する 戻り値はCSSStyleDeclaration
39
書き換えできない
40
第二引数で。擬似要素を指定できる Window.getComputedStyle(p, "::first-letter") ちなみに:hoverなど擬似クラスはとれない
41
グローバル変数の格納先はWindowオブジェクトなので、 var str=“foo” はwindow.strで参照できてしまう。 また、window.getComputedStyleは 単にgetComputedStyleともかける ただ、windowオブジェクトのプロパティはちゃんと明示的にかいたほうがいい
42
<style>〜</style>の間を表すオブジェクト 1 枚の CSS スタイルシートを表し、そのスタイルシートに含まれるルールのリストを調べたり変更したりすることができます 。 StyleSheet が親で、プロパティとメソッドを継承しています。
43
1 ドキュメントから取得する ドキュメントはスタイルシートをコレクション形式でプロパティで管理している。 var sheet = document.styleSheets.item(0); document.styleSheets[0]ともかける 2.スタイル要素を取得してからsheetプロパティで取得する var style = document.getElementById('mysheet'); console.log(style.sheet);
44
CSSStyleSheetオブジェクトのownerNodeとは、そのCSSStyleSheetのもととなるノードで、今回の場合、このCSSStyleSheetはstyle要素によって作られたから、style要素のノードが入っています
45
CSSRuleインターフェースを継承するオブジェクト 色々種類がある CSSStyleSheet.cssRulesプロパティでコレクション形式で取得できる。 つまり、sheet.cssRules[0]で取得できる。 https://developer.mozilla.org/ja/docs/Web/API/CSSRule
46
cssTextプロパティを利用すれば 読み取り専用で、取得できる。 例 var cssrule = document.styleSheets.item(0).cssRules.item(0); console.log(cssrule.cssText); で、 body { background-color: aqua; }がかえる
47
1 CSSStyleRule h1 { color: pink; } みたいなやつ 2 CSSMediaRule @media (min-width: 500px) { body { color: blue; } } みたいなやつ 他にも色々ある。 https://developer.mozilla.org/ja/docs/Web/API/CSSRule
48
CSSStyleRuleのselectorTextプロパティを利用する。 let myRules = document.styleSheets[0].cssRules; console.log(myRules[0].selectorText); // a string containing "h1".
49
できる!! セレクタは変更できる
50
styleプロパティを利用する 取得されるのはCSSStyleDeclarationオブジェクトである。 let myRules = document.styleSheets[0].cssRules; console.log(myRules[0].style); // a CSSStyleDeclaration representing the declarations on the h1. CSSStyleDeclarationなので、以下のように変更もできる。 myRules[0].style.color = "blue";
51
CSSStyleDecorationのsetPropertyメソッドを利用する cssrule.style.setProperty("background-color","blue"); で書き換え可能 第一引数がプロパティ名で、第二引数に値を設定可能
52
文字列で、"important"を指定することができる。 background-color: blue !important;
53
getPropertyValueメソッド cssrule.style.getPropertyValue("background-color")で、 ”blue"あるいは"#0000ffなどの値が返ってきます。返り値は常に文字列で、もしそのプロパティがセットされていなかったら""が返ってきます。
54
スタイルシートそのものCSSStyleSheet(StyleSheetを継承) bodyとか、divとかpとか CSSStyleRule(CSSRuleを継承) background-color: aqua;の部分 CSSStyleDecation
55
CSSstyleDecationのメソッドで、 getPropertyPriorityを利用する。 getPropertyPriority("background-color")で、importantの部分のとこが取得できる もしなければこれまた""が返ってきます。
56
removePropertyメソッドを利用する。 cssrule.style.removeProperty("background-color");
57
CSSStyleDeclarationはコレクションでもあるため、 LengthやItemがつかえる cssrule.style.item(0)(またはcssrule.style[0]は"background-color"が返ります
58
配列ライクなオブジェクト イテラブルほど配列のメソッドをサポートしていない。 以下のようなオブジェクトが配列ライク 添字アクセスできる。 let arrayLike = { // インデックスとlengthを持っている => 配列ライク 0: "Hello", 1: "World", length: 2 }; // エラー (Symbol.iterator はないので) for (let item of arrayLike) {}