Što je JavaSkripta? Uvod s primjerom Hello Worlda

⚡ Pametni sažetak

JavaSkripta je programski jezik koji web stranice čini interaktivnima. Ovaj uvod objašnjava što JavaSkripta je, odakle dolazi, kako je preglednici i Node.js izvršavaju te kako napisati i pokrenuti prvu skriptu Hello World.

  • 🌐 Klijent i poslužitelj: JavaSkripta je započela unutar preglednika, ali sada se izvodi i na poslužiteljima putem Node.js-a, Deno-a i Bun-a.
  • 🕰️ Podrijetlo: Brendan Eich je razvio jezik u Netscapeu 1995. godine; zvao se Mocha, zatim LiveScript, pa... JavaSkripta.
  • 📜 Standard: ECMAScript je službena specifikacija, tako da se svaki moderni preglednik slaže s istim osnovnim jezičnim pravilima.
  • 🛠️ Postaviti: Za pisanje i testiranje vašeg prvog skripta dovoljni su običan tekstualni editor i bilo koji moderni preglednik.
  • 🖥️ Prvo konzola: Pritisnite F12, otvorite karticu Konzola i pokrenite pojedinačne retke JavaSkripta bez kreiranja ikakvih datoteka.
  • Ne Java: Java i JavaSkripte dijele četiri slova i gotovo ništa drugo, uključujući tipove sustava i vremena izvođenja.
  • Plasman: Stavite skripte unutar oznaka skripti ili povežite vanjsku .js datoteku za čišće i predmemorirane stranice.

Što je JavaScript

Što je JavaSkripta?

JavaSkripta je programski jezik visoke razine koji web stranicama dodaje ponašanje. To je jedna od tri osnovne tehnologije weba: HTML osigurava strukturu, CSS osigurava izgled, a JavaSkripta omogućuje interakciju. Svaki put kada okvir za pretraživanje prikazuje prijedloge dok tipkate, rotirajući izbornik fotografija se pomiče ili vas obrazac za prijavu upozori na polje koje nedostaje, JavaSkripta taj posao obavlja u pozadini.

Donji dijagram prikazuje kako se skripta nalazi uz oznake obične web stranice.

Uvod u JavaScript

Većim dijelom svog života JavaSkripta je opisana kao skriptni jezik na strani klijenta jer se izvršavala samo unutar preglednika. Taj opis je sada nepotpun. Otkad se Node.js pojavio 2009. godine, isti jezik je također pokretao web poslužitelje, uslužne programe naredbenog retka, desktop aplikacije i mobilne aplikacije. Točniji opis danas je da JavaSkripta je jezik opće namjene s neobično snažnom prisutnošću u pregledniku.

Karakteristike koje definiraju jezik su:

  • Dinamički tipizirano: Varijabla može sada sadržavati broj, a trenutak kasnije niz znakova, pa se tipovi provjeravaju dok se program izvršava.
  • Interpretirano i sastavljeno na vrijeme: Engine-i poput V8 u Chromeu i Node.js-a kompajliraju često izvršavani kod u strojni kod radi brzine.
  • Višestruka paradigma: Podržani su imperativni, funkcionalni i objektno orijentirani stilovi.
  • Vođeno događajima: kod reagira na klikove, pritiske tipki, tajmere i mrežne odgovore umjesto da se pokreće od vrha do dna i zaustavlja seping.
  • Jednonitna s petljom događaja: Spori rad, poput mrežnog poziva, stavlja se u red čekanja umjesto zamrzavanja stranice.

💡 Savjet: JavaScript i ECMAScript nisu konkurentski jezici. ECMAScript je pisana specifikacija i JavaSkripta je implementacija te specifikacije koju preglednici i Node.js zapravo isporučuju.

Povijest od JavaScript

Brendan Eich je stvorio JavaScenarij u Netscape Communicationsu 1995. godine, proizvevši prvi radni prototip za otprilike deset dana. Interno se projekt zvao MokaIsporučen je u beta verziji Netscape Navigatora 2.0 kao LiveScript u rujnu 1995., a preimenovan je JavaScript u prosincu 1995. kao dio marketinškog sporazuma između Netscapea i Sun Microsystemsa, tvrtke koja je bila vlasnik Java u to vrijeme.

Javascript Povijest

To preimenovanje je jedini razlog zašto toliko početnika još uvijek pretpostavlja JavaScript je lagano izdanje JavaDva jezika nisu povezana po dizajnu, vlasništvu i vremenu izvođenja. Netscape je predao jezik Ecma Internationalu 1996. godine, a prvo izdanje standarda ECMA-262 objavljeno je u lipnju 1997. Tablica u nastavku navodi prekretnice koje su najvažnije pri čitanju starijeg koda.

Godina Prekretnica Zašto je važno
1995 Mocha, zatim LiveScript, pa onda JavaScript Jezik je stvorio Brendan Eich u Netscapeu.
1997 ECMA-262 prvo izdanje Jezik dobiva pisani standard neutralan od strane dobavljača.
2009 ES5 i prvo izdanje Node.js-a Stiže strogi način rada i JavaSkripta izlazi iz preglednika.
2015 ES6 (ECMAScript 2015) Dodaju se let, const, funkcije strelica, klase, moduli i obećanja.
2016 nadalje Godišnja izdanja ECMAScripta Manje značajke isporučuju se svakog lipnja umjesto u rijetkim velikim izdanjima.

Zbog godišnjeg ciklusa izdavanja, kod napisan prije 2015. izgleda znatno drugačije od modernog koda. Stariji tutorijali koriste var svugdje, dok trenutni kod preferira let i const kada deklariranje varijabli u JavaScript.

Što je JavaZa koji se scenarij koristi?

JavaSkripta više nije ograničena na male trikove na stranicama. Ista sintaksa sada se pojavljuje na četiri vrlo različita mjesta, zbog čega se dosljedno rangira kao jedan od najčešće korištenih jezika u anketama programera.

Površina Što JavaSkripta to radi Tipični alati
Prednji dio preglednika Obrađuje klikove, ažurira stranicu bez ponovnog učitavanja, provjerava obrasce i crta grafikone. React, Vue, Angular, Svelte
Strana servera Opslužuje HTTP zahtjeve, komunicira s bazama podataka i gradi REST ili GraphQL API-je. Node.js, Deno, Bun, Express
Mobilne aplikacije gradi Android i iOS aplikacije iz jedne zajedničke baze koda. React Native, IonicKondenzator
Desktop aplikacije Omotava web sučelje u izvorni prozor s pristupom datotečnom sustavu. Elektron, Bik
Alati i automatizacija Grupira resurse, pokreće testne pakete i pokreće preglednike za end-to-end testiranje. Vite, webpack, Jest, Playwright

Igre, vizualizacije podataka, proširenja preglednika i mali hardverski projekti također se oslanjaju na njega. Za početnika praktična posljedica je jednostavna: trud koji uložite u sintaksu sada se izravno prenosi na rad na poslužitelju, mobilni rad i kasnije automatizaciju testiranja. Ako želite vidjeti jezik primijenjen na stvarne probleme, prođite kroz skup praktičan JavaPrimjeri skriptnog koda nakon što su osnove udobne.

Kako trčati JavaSkripta?

JavaSkripta se ne izvršava sama od sebe. Potrebno joj je okruženje hosta koje sadrži JavaScript motorChrome i Edge koriste V8, Firefox koristi SpiderMonkey, a Safari koristi JavaScriptCore. Kada preglednik preuzme HTML stranicu i pronađe skriptu, predaje tu skriptu svom engineu, koji je parsira, kompajlira i pokreće.

Drugo host okruženje je Node.js, koje ugrađuje isti V8 engine izvan preglednika. Tako se identičan jezik izvodi na poslužitelju ili u terminalu. Praktična prednost JavaSkripta je to svaki moderni preglednik ga podržava on Windows, Linux i macOS, tako da se rijetko morate brinuti o tome koji preglednik posjetitelj koristi. Ovo je pravo poboljšanje u odnosu na VBScript, koji je ikada radio samo u Internet Exploreru na Windows i sada je zastario zajedno sa samim Internet Explorerom.

⚠️ Upozorenje: preglednik JavaSkripta i Node.js JavaSkripte dijele osnovni jezik, ali ne i okolne objekte. document i window postoje samo u pregledniku i require i moduli datotečnog sustava postoje samo u Node.js-u. Kopiranje koda između njih dva bez provjere izbacit će referencijsku grešku.

Alati koji vam trebaju

Trebat će vam uređivač teksta za pisanje koda i preglednik za pregled rezultata. Notepad++, Visual Studio Code, Sublime Text, i bilo koji drugi editor s kojim se osjećate ugodno obavit će posao, iako će vam editor s isticanjem sintakse i usklađivanjem zagrada uštedjeti mnogo otklanjanja pogrešaka. Radi bilo koji trenutni preglednik: Google Chrome, Firefox, Microsoft Edgeili Safari. Osim te dvije stavke, ništa ne treba kupiti ili instalirati.

Jednostavan JavaProgram za skripte

Ako zadržite JavaSkripta unutar samog HTML dokumenta, cijeli kod mora se nalaziti između otvarajućeg znaka <script> oznaka i zatvaranje </script> oznaku. Na taj način preglednik razlikuje vaš kod od okolnog koda. Starije stranice također postavljaju type atribut, napisan kao <script type="text/javascript">, što je bilo potrebno kada su postojali konkurentski klijentski jezici poput VBScripta. Moderne stranice ga izostavljaju jer HTML5 tretira text/javascript kao zadano. Dvije verzije u nastavku su funkcionalno identične i obje su još uvijek važeće.

Hello World Primjer

Tradicionalni prvi program prikazuje poruku. Stavite sljedeći kod u datoteku pod nazivom hello.html i otvorite ga u pregledniku.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script type="text/javascript">
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

Izlaz:

A browser dialog box opens containing the text:

Hello World!

Bilješka: type="text/javascript" nije potreban u HTML5. Sljedeći kod radi na potpuno isti način.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script>
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

Izlaz:

A browser dialog box opens containing the text:

Hello World!

Nakon što stranica naraste više od nekoliko redaka, premještanje skripte u vlastitu .js Datoteka održava čitljivost oznaka i omogućuje pregledniku da kešira kod. Razlike su detaljno obrađene u ovoj usporedbi unutarnje i vanjsko JavaScript.

Kako napisati i pokrenuti svoj prvi skript

Postoje tri praktična načina za izvršenje JavaSkripta, a početnik bi trebao isprobati sva tri jer svaki odgovara drugačijoj situaciji.

1. Konzola preglednika. Ovo je najbrža opcija i ne zahtijeva nikakve datoteke. Otvorite bilo koju web stranicu, pritisnite F12 (ili Ctrl+Shift+Ja uključen Windows i Linux, Cmd+Option+I na macOS) i odaberite Utješiti Tab. Upišite redak, pritisnite Enter i rezultat će se odmah pojaviti. To je idealno mjesto za testiranje jednog izraza ili za provjeru što funkcija vraća.

// Type each line into the browser console and press Enter
console.log(2 + 2);
console.log("Guru" + 99);
console.log(Math.max(4, 12, 7));
console.log(typeof "hello");

Izlaz:

4
Guru99
12
string

Obratite pažnju na drugi redak. Dodavanje broja 99 nizu "Guru" proizvodi niz "Guru99” umjesto greške, jer JavaSkripta automatski pretvara broj u tekst. To ponašanje je praktično i ujedno je klasičan izvor početničkih grešaka.

2. HTML datoteka. Ovo je primjer Hello World prikazan gore. Koristite ga kad god kod mora dodirnuti samu stranicu, na primjer za čitanje vrijednosti obrasca ili promjenu elementa.

3. Node.js iz terminala. Instalirajte Node.js, spremite kod u datoteku s nastavkom .js proširenje, a zatim pokrenite node first-script.jsNišta se ne renderira, pa console.log postaje vaš izlazni kanal. Ovo je put kojim treba ići kada želite vježbati značajke čistog jezika bez ikakvog HTML-a oko njih.

// first-script.js
const language = "JavaScript";
const createdBy = "Brendan Eich";
const releaseYear = 1995;

console.log(language + " was created by " + createdBy + " in " + releaseYear + ".");

const usedFor = ["Interactive web pages", "Server apps with Node.js", "Mobile apps"];

usedFor.forEach(function (item, index) {
  console.log(index + 1 + ". " + item);
});

Izlaz:

JavaScript was created by Brendan Eich in 1995.
1. Interactive web pages
2. Server apps with Node.js
3. Mobile apps

Ovaj kratki skript već koristi tri ideje s kojima ćete se stalno susresti: konstante deklarirane s const, poredak sadrži popis vrijednosti i funkciju povratnog poziva koja se prosljeđuje forEachPrepisivanje iste petlje s for izjava je korisna vježba nakon što ste proučili petlje u JavaScript.

JavaSkripta vs. Java

Imena su najveća nesreća u povijesti programiranja, a zbrku koju uzrokuju vrijedi razjasniti na vrijeme. JavaScript je preimenovan iz LiveScript isključivo iz marketinških razloga 1995. godine, u trenutku kada Java bila je najrazgovaranija tehnologija na webu. Ta dva jezika dizajnirali su različiti ljudi, u različitim tvrtkama, za različite probleme.

Aspekt JavaScript Java
Created by Brendan Eich u Netscapeu, 1995. James Gosling u Sun Microsystemsu, 1995.
Typing Dinamičan i slabo tipiziran Statički i snažno tipizirani
Radi dalje Preglednički mehanizmi i Node.js The Java Virtualni stroj
Kompilacija Pravovremeno kompilira motor tijekom izvođenja Unaprijed kompajliran u bajtkod
Objektni model Temeljeno na prototipu, s dodanom sintaksom klase u ES6 Temeljeno na razredu od samog početka
Proširenje datoteke . Js .java kompiliran u .class
zajednička upotreba Web front-endovi, API-ji, alati Pozadinski sustavi poduzeća, Android, veliki podaci

Jedina prava sličnost je u tome što oba posuđuju sintaksu vitičastih zagrada iz C-a. Učenje jednog ne uči vas drugom, iako zajednička sintaksa čini drugi jezik malo lakšim za čitanje. Ako je strogo typing apelira na tebe, TypeScript dodaje statički sloj tipa na vrh JavaSkripta prilikom kompajliranja u običnu verziju JavaScenarij, a razlike su navedene u ovome TypeScript i JavaUsporedba skripti.

S osnovama na mjestu, prirodni sljedeći koraci su interaktivan JavaVježbe sa skriptama, A zatim varijable i tipovi podataka, Nakon čega slijedi nizovi i petlje. Nakon toga, objektno orijentirano JavaScript objašnjava kako se objekti, prototipovi i klase međusobno uklapaju i formatiranje nizova pokriva rukovanje tekstom koje ćete koristiti u gotovo svakoj skripti.

Pitanja i odgovori

ECMAScript je pisani standard, objavljen kao ECMA-262, koji definira sintaksu i ugrađene objekte. JavaSkripta je radna implementacija tog standarda koju isporučuju dobavljači preglednika i Node.js. Nazivi verzija poput ES6 odnose se na izdanja standarda.

Oba. Izvorni kod se isporučuje kao običan tekst i čita ga engine, ali engine-i poput V8 i SpiderMonkeyja just-in-time kompajliraju često izvršavane funkcije u strojni kod. Rezultat se ponaša kao interpretirani jezik s gotovo kompajliranom brzinom.

Uobičajeni uzroci su nedostajuća oznaka završnog skripta, krivi put do vanjske datoteke, tipografska pogreška koja izbacuje sintaktičku pogrešku ili skripta koja se izvršava prije nego što postoji element na koji cilja. Otvorite karticu Konzola da biste pročitali točnu pogrešku.

Interni skripti su u redu za nekoliko redaka dok učite. Prijeđite na vanjsku .js datoteku čim se kod ponovno upotrijebi na više od jedne stranice, jer ga preglednik tada može predmemorirati i oznake ostaju čitljive.

Mogu brzo proizvesti funkcionalne isječke koda, ali također miješaju API-je samo za preglednik i samo za Node.js te povremeno izmišljaju metode. Pokrenite svaki prijedlog, sami pročitajte pogreške konzole i tretirajte izlaz kao nacrt, a ne kao gotov odgovor.

Izrađuje sučelje za chat, struji odgovore modela token po token i poziva API-je modela iz Node.js backenda. Biblioteke poput TensorFlow.js i ONNX Runtime Web također pokreću manje modele izravno unutar preglednika.

Sažmite ovu objavu uz: