Wat is het JS-bestandsformaat?
.js-bestanden slaan broncode op die is geschreven in de programmeertaal JavaScript. .js-code kan worden ingebed in websites en worden gebruikt om invoergegevens te verifiëren, browservensters te manipuleren of interactieve fotogalerijen te bouwen. Hoewel JavaScript begon als voornamelijk een front-end technologie, draait het nu ook server-side via runtimes zoals Node.js, Deno en Bun, waardoor het een full-stack taal is. JavaScript-code kan rechtstreeks in HTML-bestanden worden opgeslagen, maar die praktijk beperkt de overdraagbaarheid. De meest gebruikelijke oplossing is het gebruik van speciale .js-bestanden die over veel websites of projecten kunnen worden hergebruikt.
JavaScript-code vereist geen Java virtual machine om te worden uitgevoerd. JavaScript is op geen enkele manier gerelateerd aan de programmeertaal Java - alleen de naam is vergelijkbaar. .js-code is niet beschermd tegen weergave door gebruikers; de bron is leesbaar in elke tekstverwerker of browser DevTools. Veel .js-bestanden zijn vrij beschikbaar voor het publiek en kunnen gratis op websites worden gebruikt. Code in vrij gelicentieerde .js-bestanden kan worden bewerkt en hergedistribueerd onder open-source voorwaarden.
Modern JavaScript ondersteunt twee modulesystemen: ES-modules (met gebruik van import/export, ook gedistribueerd als .mjs-bestanden) and CommonJS (met gebruik van require/module.exports). Gegevens die tussen scripts en servers worden uitgewisseld, worden gewoonlijk opgeslagen als JSON. Projecten die statische typecontrole nodig hebben, gebruiken TypeScript, een getypeerde superset die terug naar .js compileert.
Beveiliging & veiligheid
RISICO: HIGHIn een webbrowser draait JavaScript in een sandbox en is het relatief veilig. Het gevaar schuilt in Windows: dubbelklikken op een los .js-bestand voert het uit via Windows Script Host (WSH) met de volledige privileges van uw account - geen sandbox. Kwaadaardige .js-bijlagen (vaak in ZIP-bestanden, soms genaamd factuur.js / document.js) zijn een bekende manier om ransomware en trojans te verspreiden. Regels: dubbelklik nooit op een .js die u via e-mail of download hebt ontvangen; open deze eerst in een tekstverwerker om hem te lezen; houd Windows-bestandsextensies zichtbaar zodat een „foto.jpg.js” zichzelf niet kan vermommen. Laad op het web alleen scripts van bronnen die u vertrouwt en gebruik Subresource Integrity (SRI) hashes voor scripts van derden.
Formaatdetails
in een notendop- JScript / Windows Script Host script - Op Windows draait een .js-dubbelklik in WSH (cscript/wscript) met volledige systeemtoegang - een klassiek malwarekanaal, geen browser-sandbox.
- JACOsub / JetScript / Netscape config (legacy) - Oude documentatie vermeldde .js voor JACOsub-ondertitelscripts en Netscape-instellingen; verouderd en tegenwoordig feitelijk ongebruikt.
Programma's die JS-bestanden openen
Technische details
diepe specificaties| MIME-type | text/javascript (primair); ook application/javascript, text/ecmascript, application/ecmascript |
| Tekstcodering | UTF-8 (vereist voor ES-modules en webdistributie); legacy-bestanden kunnen ASCII of Latin-1 zijn |
| Bestandssignatuur (magic bytes) | Geen - platte-tekstindeling; geïdentificeerd door .js-extensie en inhoud, niet door header-bytes |
| Containerformaat | Platte tekst - menselijk leesbare instructies, functies en expressies die van boven naar beneden worden uitgevoerd |
| Modulesystemen | ES-modules (import/export) en CommonJS (require/module.exports); opgelost via het veld „type” in package.json |
| Executie-omgevingen | Alle grote browsers (Chrome V8, Firefox SpiderMonkey, Safari JavaScriptCore) en server-runtimes (Node.js, Deno, Bun) |
| Typische broncode-grootte | 1 KB tot een paar honderd KB per bestand; productiebundels kunnen enkele MB bereiken |
| Productielevering | Geminimaliseerd (verwijderen van witruimte en inkorten van identifiers), daarna gzip of Brotli-gecomprimeerd voor HTTP-overdracht |
| Integriteitsverificatie | Subresource Integrity (SRI) - sha256/sha384/sha512 hash in het HTML <script integrity="..."> attribuut |
| Taalparadigma | Multi-paradigma: prototype-gebaseerd objectgeoriënteerd, functioneel en event-driven |
| Onderscheidende extensies | .mjs (expliciete ES-module), .cjs (expliciete CommonJS), .jsx (React JSX-syntaxis), .ts (TypeScript-superset) |
| Zichtbaarheid van broncode | Broncode is altijd menselijk leesbaar; obfuscatie is cosmetisch, geen cryptografische bescherming |
| Standaardisatie-instantie | Ecma International (TC39-commissie) - ECMA-262 standaard; jaarlijks wordt een nieuwe editie gepubliceerd |
| Shebang-ondersteuning | Server-side bestanden kunnen beginnen met #!/usr/bin/env node om direct als shell-script te draaien |
| Source maps | Geminimaliseerde bestanden worden gekoppeld aan .map-bestanden (JSON) om gecompileerde output terug te mappen naar originele bronregels |
| Uitgebracht | 1995 (Netscape Navigator 2.0); ECMA-262 1st edition 1997 |
| Laatste versie | ECMAScript 2025 (ES2025 / 16th edition); language is updated yearly |
| Open standaard | Ja · royaltyvrij |
| Specificatie | tc39.es |
JS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over JS-bestanden.