Bu hata lexer’ın geçerli JavaScript token’ına dönüştüremediği bir karakterle karşılaşmasıyla oluşur. Word, WhatsApp veya web sayfasından kopyalanan akıllı tırnaklar; zero-width space, non-breaking space, bozuk escape, BOM veya kapanmamış string yaygın nedenlerdir.
SyntaxError: Invalid or unexpected token
Invalid character
Illegal character
Unexpected token ILLEGALBu hata lexer’ın geçerli JavaScript token’ına dönüştüremediği bir karakterle karşılaşmasıyla oluşur. Word, WhatsApp veya web sayfasından kopyalanan akıllı tırnaklar; zero-width space, non-breaking space, bozuk escape, BOM veya kapanmamış string yaygın nedenlerdir.
Bir SyntaxError sonraki tüm scriptleri durdurabilir; önce Console’daki ilk kırmızı kaydı çözün.
Source map, pretty print ve Network URL ile hatanın kaynak mı build mi olduğunu belirleyin.
node --check, ESLint, TypeScript veya JSON doğrulayıcıyla sorunu küçük bir alana indirin.
PHP render, API body, CDN cache ve module loader sonucunu production cevabında kontrol edin.
Kod dosyasını Word veya zengin metin editöründe düzenlemeyin.
Anlamı: “ ” veya ‘ ’ JavaScript string sınırı değildir.
Muhtemel neden: Metin editöründen kopyalama.
Anlamı: Görünmeyen Unicode karakter lexer’ı bozuyor.
Muhtemel neden: Web/mesajlaşma kopyası.
Anlamı: Normal boşluk gibi görünen U+00A0 kullanılmış.
Muhtemel neden: HTML’den kopyalama.
Anlamı: String dosya veya satır sonunda kapanmıyor.
Muhtemel neden: Eksik tırnak veya kaçış.
Anlamı: Tek/çift tırnak string’i satıra bölünmüş.
Muhtemel neden: Template literal yerine normal string.
Anlamı: Dosya başındaki karakter beklenmeyen konumda.
Muhtemel neden: Yanlış encoding veya BOM.
Anlamı: Backslash sonrası geçersiz karakter.
Muhtemel neden: Windows path veya regex.
Anlamı: Bazı karakterler string dışında geçersiz.
Muhtemel neden: Yanlış değişken adı.
Bu ifadeyle eşleşen kayıt bulunamadı.
file -bi app.jsKarakter kodlama bilgisini gösterir.
python3 -c "from pathlib import Path; s=Path('app.js').read_text('utf-8'); print([(i+1,c,hex(ord(c))) for i,c in enumerate(s) if ord(c)>127][:100])"ASCII dışı karakterleri konumuyla listeler.
xxd -l 16 app.jsDosyanın ilk baytlarını gösterir; UTF-8 BOM EF BB BF olarak görünür.
grep -nP '[\x{2018}\x{2019}\x{201C}\x{201D}\x{00A0}\x{200B}]' app.jsAkıllı tırnak ve görünmeyen yaygın Unicode karakterleri arar.
node --check app.jsHatanın yaklaşık satır ve sütununu gösterir.
python3 -c "from pathlib import Path; p=Path('app.js'); p.write_text(p.read_text(encoding='utf-8-sig'),encoding='utf-8')"UTF-8 BOM varsa kaldırarak dosyayı yeniden yazar.
const mesaj = “Merhaba”;const mesaj = "Merhaba";const mesaj = 'Birinci
İkinci';const mesaj = `Birinci
İkinci`;const yol = 'C:\new\test';const yol = String.raw`C:\new\test`;const kullanici = 1;const kullanici = 1;Chrome DevTools Console, Sources ve Network panelleriyle gerçek dosya, satır ve sunucu cevabı birlikte incelenmelidir.
Node sürümü, package.json module tipi, derleme çıktısı ve çalıştırılan gerçek dosya aynı module sistemine uygun olmalıdır.
PHP uyarıları, tema HTML’i, yönlendirme ve çift script yükleme JavaScript hatası gibi görünebilir.
JavaScript parser, JSON parser veya module loader beklenen sözdizimini bulamadığında oluşur. Hata mesajı gerçek nedenin bulunduğu satırdan sonraki token’ı işaretleyebilir.
Satır çoğu zaman parser’ın hatayı fark ettiği yerdir. Eksik tırnak, parantez veya virgül bir önceki satırda olabilir.
Source map ve DevTools pretty print kullanın; asıl kaynak dosyayı düzeltip yeniden build alın.
PHP warning, HTML hata sayfası veya kaçış yapılmadan basılan veri JavaScript/JSON sözdizimini bozabilir.
Çoğu parser hatasını bulur; ancak yanlış sunucu cevabı, çift script yükleme ve runtime module yapılandırması ayrıca incelenmelidir.
Deploy, minify, cache, paket güncellemesi, Node sürümü, PHP çıktısı veya yarım yüklenen dosya davranışı değiştirmiş olabilir.
Rehber teşhis ve güvenli düzeltme adımları sunar; değişiklikler staging ortamında test edilip Git ile geri alınabilir tutulmalıdır.
Console, Fetch/AJAX, PHP JSON cevapları, ES Modules, TypeScript build ve WISECP script yükleme sorunlarını üretim yapısını bozmadan inceliyoruz.