Mentre ci sono molte cose che JavaScript può essere usato per migliorare le tue pagine web e migliorare l'esperienza dei tuoi visitatori con il tuo sito, ci sono anche alcune cose che JavaScript non può fare. Alcune di queste limitazioni sono dovute al fatto che lo script è in esecuzione nella finestra del browser e pertanto non può accedere al server mentre altri sono a causa della sicurezza in atto per impedire alle pagine Web di essere in grado di manomettere il computer. Non c'è modo di aggirare queste limitazioni e chiunque affermi di essere in grado di eseguire una delle seguenti attività usando JavaScript non ha preso in considerazione tutti gli aspetti di qualunque cosa stiano cercando di fare.
Utilizzando Ajax, JavaScript può inviare una richiesta al server. Questa richiesta può leggere un file in formato XML o in testo semplice ma non può scrivere su un file a meno che il file chiamato sul server non venga effettivamente eseguito come script per eseguire la scrittura del file per te.
JavaScript non può accedere ai database a meno che non si utilizzi Ajax e si disponga di uno script lato server per eseguire gli accessi al database.
Anche se JavaScript è in esecuzione sul computer client (quello in cui viene visualizzata la pagina Web), non è consentito accedere a nulla al di fuori della stessa pagina Web. Questo viene fatto per motivi di sicurezza poiché altrimenti una pagina Web sarebbe in grado di aggiornare il computer per installare chissà cosa. L'unica eccezione a ciò sono i file chiamati biscotti che sono piccoli file di testo su cui JavaScript può scrivere e leggere. Il browser limita l'accesso ai cookie in modo che una determinata pagina Web possa accedere solo ai cookie creati dallo stesso sito.
JavaScript non può chiudere una finestra se non l'ha aperta. Ancora una volta questo è per motivi di sicurezza.
Anche se è possibile visualizzare contemporaneamente pagine Web di domini diversi, in finestre del browser separate o in frame separati all'interno della stessa finestra del browser, il JavaScript in esecuzione su una pagina Web appartenente a un dominio non può accedere a nessuna informazione su una pagina Web da un dominio diverso. Questo aiuta a garantire che le informazioni private su di te che potrebbero essere note ai proprietari di un dominio non vengano condivise con altri domini le cui pagine Web potrebbero essere aperte contemporaneamente. L'unico modo per accedere ai file da un altro dominio è fare una chiamata Ajax al tuo server e fare in modo che uno script lato server acceda all'altro dominio.
Tutte le immagini sulla tua pagina web vengono scaricate separatamente sul computer che visualizza la pagina Web in modo che la persona che visualizza la pagina abbia già una copia di tutte le immagini al momento in cui la visualizzano. Lo stesso vale per l'attuale sorgente HTML della pagina Web. La pagina Web deve essere in grado di decrittografare qualsiasi pagina Web crittografata per poterla visualizzare. Mentre una pagina Web crittografata può richiedere l'abilitazione di JavaScript per poter decrittografare la pagina in modo che possa essere visualizzata dal browser Web, una volta che la pagina è stata decrittografata chiunque sa come può facilmente salvare la copia decrittografata dell'origine della pagina.