Zrádné 'let' v Google Sheets Apps Script: Chyba, která se tváří jako syntaxe

Nedávno jsem narazil na nečekaný problém při práci se Google Apps Scriptem v rámci Google Sheets. Po dlouhých hodinách ladění a marných konzultacích s AI, která tvrdila, že je kód syntakticky naprosto v pořádku, se ukázalo, že "zakopaný pes" je jinde, než se zdálo.

Chyba se sémantikou nebo syntaxí?

Původní chybová zpráva byla matoucí:

Chyba syntaxe: Missing ; before statement. řádek: 1 soubor: Kód

Vypadalo to na klasickou chybu jako špatně umístěná závorka, zapomenutý středník nebo nesprávné uvozovky. Kód jsem kontroloval znovu a znovu, stejně jako nástroje pro kontrolu syntaxe. Vše bylo v pořádku.

Skutečný problém: Rezervovaná slova a prostředí

Problém nakonec spočíval v použití moderního klíčového slova let pro deklaraci proměnné. Ačkoliv je let standardní součástí moderního JavaScriptu (ES6+), prostředí, ve kterém běží starší verze Google Apps Scriptu, ho nemusí plně podporovat nebo interpretovat očekávaným způsobem, což může vést k chybám, které se maskují jako chyby syntaxe.

Konkrétně, můj kód používal:

let mojePromenna = "hodnota";

Řešení: Návrat ke kořenům

Rychlá a účinná oprava spočívala v nahrazení moderního let starším, ale spolehlivě podporovaným klíčovým slovem var:

var mojePromenna = "hodnota";

Po této drobné změně skript okamžitě začal fungovat! Celá "chyba syntaxe" na prvním řádku se vyřešila nahrazením jednoho klíčového slova. Poučení pro všechny vývojáře v Apps Scriptu:

  • Ne vždy věřte AI, pokud jde o kontext specifického prostředí.
  • Pokud Apps Script hlásí nesmyslnou chybu syntaxe na začátku souboru, zkuste zkontrolovat deklarace proměnných.
  • Pro maximální kompatibilitu a stabilitu v Apps Scriptu je stále někdy bezpečnější používat var namísto let nebo const, dokud si nejste jisti, jakou verzi JS vaše prostředí skutečně používá.

Doufám, že tato zkušenost ušetří čas někomu jinému! 🙏

Zpět na přehled
NÁSLEDUJÍCÍ ČLÁNEK ►