提问人:Nikolai Tkachenko 提问时间:10/24/2023 最后编辑:Rory McCrossanNikolai Tkachenko 更新时间:10/24/2023 访问量:33
同一个无名变量是否计算了两次
Is the same anonimous variable calculated twice
问:
我在 Javascript 中有一个这样的假想代码
let z = 99999;
if (str.lastIndexOf('_') !== -1)
z = str.lastIndexOf('_');
}
会是这段代码:被计算两次吗?
或者在这个原因中:str.lastIndexOf('_')
z = str.lastIndexOf('_') !== -1 ? str.lastIndexOf('_') !== -1 : 99999
;
如果这将计算两次,这是否意味着最好的方法是放入一个单独的变量中并在条件下使用它?str.lastIndexOf('_')
我想知道故意忽略执行模式 可以通过词汇目的来证明。
答:
2赞
Konrad
10/24/2023
#1
我们可以通过覆盖来测试这一点lastIndexOf
const orig = String.prototype.lastIndexOf
String.prototype.lastIndexOf = function(...args) {
console.log('running lastIndexOf')
orig.call(this, ...args);
}
const str = '31231231231312_1312312'
let z = 99999;
if (str.lastIndexOf('_') !== -1) {
z = str.lastIndexOf('_');
}
如您所见,它打印了 2 次
评论