以下のコードのとき、ESLintによりstatusの変更の方だけ、no-global-assignの警告が出ます。
statusとxの変更の違いは何でしょうか。
漠然と「値渡しと参照渡しの違い」によるものなのかな、とは考えましたが確信が持てません。
JavaScript
1let status = 'ready'; 2let x = 0; 3 4status = 'go'; // ←no-global-assignが出る 5x = 1; // ←何も言われない 6 7console.log(status, x); // go 1
一応、どうしても回避したい場合は
JavaScript
1const gl = { 2 status: 'ready', 3 x: 0 4}; 5gl.status = 'go'; 6gl.x = 1; 7console.log(gl.status, gl.x);
といった感じのコードにしますが、こうなると
変数が単純な処理しかしない場合でも、大袈裟になりがちです。
趣味のプログラムなのでno-global-assignをoffにしても良いのですが、理解した上でoffにしたいです。
何故statusだけがno-global-assignを指摘され、xは何をもって見逃されているのでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/03 08:03