質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1336閲覧

GASの変数宣言について

snd1000

総合スコア22

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2022/04/16 05:03

変数宣言は

・constは再宣言×、再代入×(=定数として扱う)
・letは再宣言×、再代入○
・varは再宣言○、再代入○

ということだったので、最新のGASスクリプトでは基本的にletかconstを使い、varは使わないほうが良いみたいなことを聞きました。
ですが例えばforループの中にさらにforループが入ってる場合、2つめのforループのカウンタはvarとletどちらで宣言するのが良いのでしょうか?GASでいまスクリプトを組んでいる方はvarは全く使ってないのですか?

例えば

function let_or_var(){ for(let i=0; i<20; i++){//1つめのループ var countOne = i+1; console.log("【ループ1】これは" + countOne + "回目のループです。"); for(var m=0; m<5; m++){//2つ目のループ var countTwo = m+1; console.log("【ループ2】これは" + countTwo + "回目のループです。"); } } }

みたいなコードがあるとして、letは再宣言は出来ないのでvarのほうが良いかな?
と思ったのですがこれはあまり良くない書き方でしょうか。

↓のようにループの外でletで先に宣言しておくのが良いでしょうか?

function let_or_var(){ let countOne; let countTwo; for(let i=0; i<20; i++){//1つめのループ countOne = i+1; console.log("【ループ1】これは" + countOne + "回目のループです。"); for(let m=0; m<5; m++){//2つ目のループ countTwo = m+1; console.log("【ループ2】これは" + countTwo + "回目のループです。"); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snd1000

2022/04/16 05:14

質問投稿した後に自分で読み直したら、このコードだとcountOne,countTwoはループ内でいちいち宣言しなおす必要ないですよね。ちょっと例えが悪かったです。ループのたびに変数を新たに宣言するような処理の場合、変数宣言はletとvarどちらが良いのだろう?というのがこの質問で聞きたかったことです。
Zuishin

2022/04/16 05:24 編集

状況によりますが、基本的に全部 const で宣言し、それで問題がある時だけ let にするという方針でほとんどの場合は良いと思います。 この質問のコードの場合、変数を使う意味もありませんが、使うのであれば const で大丈夫です。
guest

回答1

0

自己解決

質問のせた後、改めて色々ぐぐってみました。
基本的にconstにして、代入する必要があるものはletにしていくようにします
回答いただきありがとうございました

投稿2022/04/16 10:30

snd1000

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問