🐙
Array.prototype.includes を 解読する
参考URL
ざっくり翻訳
自分ように読み解いてみた(完全なメモ書きレベルなのでご了承ください...)
-
includes
する対象がObjectかどうかを確認 - Objectのなバサ(len)を確認
- もし長さが0なら
false
- 【開始位置検証】 開始位置(n)を確認するために
formIndex
(第2引数)を確認
5. 数値かInfinity
を検証(Infinity
はグローバル変数) -
formIndex
がundefined
なら開始位置(n)は0とする - 【開始位置検証】で検証した値が
+Infinity
なら結果はfalse
- 【開始位置検証】で検証した値が
-Infinity
なら開始位置(n)を0とする - いずれにも該当しなければ、検証位置(k)にObjectの長さ(len)+ 開始位置(n)をセット
10. もし検証位置(k)が0未満であれば、検証位置(k)に0をセット - 【ループ】 検証位置(k) < Objectの長さ(len)
12.elementK
にObjectの検証位置(k)の値をセット
13. 検証値(searchElement
)とelementK
が一致すれば 結果はtrue
14. 一致しなければ検証位置(k)を+1して再ループ
感想
内部でループが発生しているということを理解した上で使用しましょう(戒め)
Discussion