jjzjj

返回八进制值的 Javascript eval 函数

当我尝试将“eval”函数作为eval("020*05+05")时,它返回85而不是105。有人能解释一下为什么eval函数会这样吗?还建议任何解决这个问题的方法。 最佳答案 以零开头的数字常量(如“020”)被解释为八进制。对于C、C++、Java、Javascript以及大多数与C具有模糊外观关系的其他语言都是如此。如果出于某种原因你真的、真的需要使用“eval()”,并且你有这些奇怪的字符串,数字常量上有伪造的前导零,你可以尝试这样的事情:varanswer=eval(weirdString.replace(/\b0(\d+)

一个故障的排查经验分享

一段时间没写技术相关的文章,有个故障造成的影响不好,但很低级,想来想起还是分享给大家,用到这个函数时可以注意下。两天前,接到实施人员报障,反馈有部分数据未匹配,在业务上无法展示。收到故障的第一反应,内心就有疑惑,这个版本这个模块都近一年没调整了,怎么会有Bug,也没见其他项目上报过这个故障。既然有报障,就得去分析,我们就根据现场的场景模拟做了业务,结果正常。结合故障期间的业务日志,也未发现异常,这下思路断了。无法复现,那就最土的方法,拿现场的数据,现场的版本,搬到公司的环境来,令人惊喜的是故障复现,还是空指针,indexOf方法不支持空指针的入参,到这边就很清晰了,居然有空指针为啥日志没显示呢