回答編集履歴
5
謝辞
answer
CHANGED
@@ -127,5 +127,6 @@
|
|
127
127
|
|
128
128
|
一つ注意すべきことですが、ユーザからの入力で動的生成する場合に関しては、スクリプトに直接ユーザが介入できるため、インジェクション攻撃の対象になる虞があります。
|
129
129
|
そのため、入力に対するバリデーションは十分に行う必要があり、この辺りも、暴れ馬と言いますか、扱いの難しさではあります。
|
130
|
+
(バリデーションの扱いの難しさについては think49 さんが詳しく触れていますね。)
|
130
131
|
|
131
132
|
このように非常に上級者向けで、使い方が難しいですが、使えそうな場面ではぜひ利用してみてください。
|
4
日本語がおかしい
answer
CHANGED
@@ -74,7 +74,7 @@
|
|
74
74
|
}
|
75
75
|
```
|
76
76
|
|
77
|
-
しかし、この方法では、`"JS"`や`"JavaScript"`などのフィルタリングワードを、予め
|
77
|
+
しかし、この方法では、`"JS"`や`"JavaScript"`などのフィルタリングワードを、予め文字リテラルとして埋め込む必要があり、**ユーザからの入力などから、動的に受け取る事ができません。**
|
78
78
|
|
79
79
|
そこで`Function`の出番です。
|
80
80
|
`wordList`を引数に受け取り、上記のようにif文と論理演算だけで構成されたフィルタの関数を動的に定義するメタプログラミングを行います。
|
3
セキュリティに関する旨も追記した
answer
CHANGED
@@ -125,4 +125,7 @@
|
|
125
125
|
|
126
126
|
グローバルオブジェクトを取ってくる、というものと比べたら、こちらのほうが本懐と言いますか、本来の使い方かと思われます。
|
127
127
|
|
128
|
+
一つ注意すべきことですが、ユーザからの入力で動的生成する場合に関しては、スクリプトに直接ユーザが介入できるため、インジェクション攻撃の対象になる虞があります。
|
129
|
+
そのため、入力に対するバリデーションは十分に行う必要があり、この辺りも、暴れ馬と言いますか、扱いの難しさではあります。
|
130
|
+
|
128
|
-
非常に上級者向けで、使い方が難しいですが、使えそうな場面ではぜひ利用してみてください。
|
131
|
+
このように非常に上級者向けで、使い方が難しいですが、使えそうな場面ではぜひ利用してみてください。
|
2
意味が逆だった
answer
CHANGED
@@ -13,8 +13,9 @@
|
|
13
13
|
|
14
14
|
その中でも、一番わかり易いのは`filter`処理でしょう。
|
15
15
|
|
16
|
-
例えば、`複数個与えられる文章に対して、特定のワードが含まれている文章を
|
16
|
+
例えば、`複数個与えられる文章に対して、特定のワードが含まれている文章を抽出する。`という処理について考えてみましょう。
|
17
|
-
aaaaaaaa さんがピンとくるか不安ですが、Twitterで言えば**
|
17
|
+
aaaaaaaa さんがピンとくるか不安ですが、Twitterで言えば**エゴサーチ機能**にあたる部分の実装です。
|
18
|
+
(因みに本来のエゴサーチの意味は、自分自身に関することの検索なので、この表現は誤用なのですが、他に適した表現方法が思いつかなかったため、ご容赦ください。)
|
18
19
|
|
19
20
|
例えば、次のようなゴミみたいなつぶやきの中から、「JS」もしくは「JavaScript」という単語が含まれるつぶやきだけを抽出して、JSに関する話題だけを取ってくるとします。
|
20
21
|
|
1
日本語が分かりづらかったので直した
answer
CHANGED
@@ -76,7 +76,7 @@
|
|
76
76
|
しかし、この方法では、`"JS"`や`"JavaScript"`などのフィルタリングワードを、予めフィルタする内容をリテラルとして埋め込む必要があり、**ユーザからの入力などから、動的に受け取る事ができません。**
|
77
77
|
|
78
78
|
そこで`Function`の出番です。
|
79
|
-
wordListを
|
79
|
+
`wordList`を引数に受け取り、上記のようにif文と論理演算だけで構成されたフィルタの関数を動的に定義するメタプログラミングを行います。
|
80
80
|
|
81
81
|
```
|
82
82
|
function createFilter(wordList){
|