我在代码大战中做了一个kata并发现了
function findNextSquare(sq) {
var rt = Math.sqrt(sq);
console.log((rt++)**2)
return rt%1 !== 0 ? -1 : ((rt++)**2);
} //>> 144
Run Code Online (Sandbox Code Playgroud)
而
function findNextSquare(sq) {
var rt = Math.sqrt(sq);
//console.log((rt++)**2)
return rt%1 !== 0 ? -1 : ((rt++)**2);
} //>> 121
Run Code Online (Sandbox Code Playgroud)
也就是说,只需注释掉console.log会导致不同的返回值......
此外,值得注意:第一个控制台记录121,而不是144.
这是repl.it:https://repl.it/languages/javascript
我想知道这是否与异步性有关.有人能解释为什么删除console.log会改变回报吗?
javascript ×1