星期四, 1月 08, 2026

[JS] 全域變數宣告

透過 Vibe Coding 產出的 GAS Code 要複製進線上 IDE 執行時發現錯誤,錯誤訊息如下
SyntaxError: Identifier '變數名稱' has already been declared
Root Cause 是把 gas Code 拆成多個檔案,Code 複製進錯的檔案內造成,但直覺全域變數不是會同名覆蓋,理論上要可以執行才是,該 case 竟然會拋出錯誤,開兩個 gs 檔案來測試並筆記
測試一:使用 var 進行宣告

Code.gs 檔案
var declareByVar = "從 Code.gs 內指定";

function GlobalVariableDemo() {
  console.log(declareByVar);
}
Code2.gs 檔案
var declareByVar = "從 Code2.gs 內指定";
實際執行
測試二:使用 let 進行宣告

Code.gs 檔案
let declareByLet = "從 Code.gs 內指定";

function GlobalVariableDemo() {
  console.log(declareByLet);
}
Code2.gs 檔案
let declareByLet = "從 Code2.gs 內指定";
實際執行
基本就不要再用 var 宣告就是

沒有留言:

張貼留言