[文盲文JS]哦第一次我~解开它的时候-->无限级累加

394 阅读1分钟

?1: add(4)(5)
?2: add(4)(5)(6)...(n)

这天,Gems遇到了这两道题 初看,似简单又耐人寻味 取一解之 add(4)(5) 仅需add返回一函数体,(5)可继续执行之

题1初解

着眼下题,头屑飞扬 如函数s返回函数体,可无限执行之,却无值而得

题2测试1

何以函数体与值共得之? ... ... 欲解此题,必先知一特性 alert与console.log会触发函数之toString方法 故以此试之

题2测试2

这里使用的是Chrome控制台,因此省去了console.log()

果真如此,由此更进一步,可使原函数返回函数体继续执行,修改toString方法暴露最终值

题2解

至此,两题皆解 技术点:闭包,重写to.String


赠品: 正则千位分隔符 100000000.00 -> 100,000,000.00 愚之思路: \. 匹配小数点 (\d{3})+ 匹配至少一个三位数 \B 匹配非单词边界 ?= 前瞻 g 全局 最后,把它们混~合~在~一~起~

千位分隔符