- var value = "abcdef";
- var result = (/abc/).test(value); // true
- var value = "abcdef";
- var result = !!value.match(/abc/); // true
- value.match(/abc/) → abc
- !value.match(/abc/) → !abc → false
- !!value.match(/abc/) → !!abc → !false → true
上記の!abcがfalseになるのは、abcが型変換でブーリアン型(true)になるからである。
型変換でfalseになる値は以下の通りで、それ以外はtrueである。
- 数値0
- 数値NaN
- null値
- undefined値
- 空文字
JavaScriptのとあるソースを呼んでて、!!value.match(/abc/)なるものがあって、何やってるのかよく分からなかったからメモを残しました。単純にRegExpのtest()を使うのとどっちがいいですかね?
0 件のコメント:
コメントを投稿