返回信息流第一段话如何理解?
把代码敲了一遍,用alert(re.test(……))看了一下输出,发现第一个循环直接循环了10次,每次都是true。
通过『我邮2.0』发布
这是一条镜像帖。来源:北邮人论坛 / java-script / #2085同步于 2017/5/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖
js高程中正则表达式
kobebrant
2017/5/1镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 logsin 的大作中提到: 】
: 以实践结果为标准,浏览器可以不按标准实现,看书只是入门
主要是对“由于实例属性不会重置,所以在循环中再次调用test()方法会失败”这句话不是很理解。抛开这句话,按照最后一句的理解就是:每次循环,都从字符串的位置0开始匹配,这样的话,那10次循环肯定是true,只不过和第二个循环的区别在于:re只创建了一次。
不知道这样的理解对不对。
之前我看到这里也很疑惑,用火狐、IE、Chrome各敲了一遍,循环十次都是true,没有false。
后来我将第一个循环体的`re= /cat/g`语句移到循环外,输出了true、false、true、false、true、false......
这说明了现今的主流浏览器已经将使用Perl语法创建的正则表达式修改为每次都创建RegExp实例。这也证实了图片中最后一段话。
另,楼主,我在JavaScript版面发了一个建群学习的帖子,不知道你感兴趣不?
【 在 AriesKean 的大作中提到: 】
: 之前我看到这里也很疑惑,用火狐、IE、Chrome各敲了一遍,循环十次都是true,没有false。
: 后来我将第一个循环体的`re= /cat/g`语句移到循环外,输出了true、false、true、false、true、false......
: 这说明了现今的主流浏览器已经将使用Perl语法创建的正则表达式修改为每次都创建RegExp实例。这也证实了图片中最后一段话。
: ...................
ok,我没问题