前提・実現したいこと
関数をデベロッパーツールから実行したときに挙動が不安定になります。
発生している問題・エラーメッセージ
与えた引数だけある変数の値を増やすだけの関数ですが、デベロッパーツールから実行して1ずつ増やしていくと10ほど増えたあたりから2ずつ増えたり、大きな数を何度も足していると正しく増えなかったりするときがあります。
該当のソースコード
javascript
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6</head> 7 8<body> 9 <script> 10 let a = 0; 11 const b = (c = 1) => { 12 return a += c; 13 }; 14 </script> 15</body> 16 17</html>
試したこと
1.デベロッパーツールからb()を15回実行する。
結果:1,2,3,4,5,6,7,8,9,10,12,14,16,18,20
2.関数を
javascript
1let a = 0; 2const b = (c = 1) => { 3 console.log(0); 4 return a += c; 5};
に変えてデベロッパーツールからb()を15回実行する。
結果:1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0
3.デベロッパーツールからfor(let i = 0; i < 15; i++) b()を実行する。
結果:15
4.デベロッパーツールからb(500)を15回実行する。
結果:500,1000,1500,2000,2500,3000,3500,4000,4500,5000,5500,6000,7000,8000,9000
5.デベロッパーツールからb()を10回実行し、b()入力してエンターを押さずに全て消すを10回繰り返し、aを確認する。
結果:
最初の10回 1,2,3,4,5,6,7,8,9,10
次に確認したaの値 20
補足情報(FW/ツールのバージョンなど)
パソコンの調子が悪いのかと思い再起動を試しましたがうまくいきませんでした。
追記:何度も同じ関数を実行していると、ある程度実行してからはエンターを押していないにも関わらず関数が実行されているようです。入力途中で勝手に関数が実行されてしまうことは防げませんか?
追記:画像を添付します。入力を確定していないにもかかわらず先読みで実行している気がします。
回答1件
あなたの回答
tips
プレビュー