JavaScript Grunder
Den här artikeln förklarar grunderna i JavaScript.
YouTube Video
Kör Hello World!
Översikt över JavaScript
JavaScript är ett av de mest använda programmeringsspråken inom webbutveckling. Det används främst för att lägga till dynamiska element till webbsidor, möjliggöra användargränssnittsmanipulation, datatransmission och skapande av animationer. Det kan köras på klientsidan (i en webbläsare) och på serversidan med hjälp av teknologier som Node.js. På grund av dess enkelhet och flexibilitet är det lätt för nybörjare att lära sig och används i stor utsträckning av professionella utvecklare.
Variabler i JavaScript
Variabler i JavaScript är som behållare som används för att lagra och återanvända data. Genom att använda variabler kan du hantera och manipulera värden i ditt program.
Variabeldeklaration
I JavaScript finns det tre nyckelord för att deklarera variabler.
var: En gammal metod för att deklarera variabler, men dess scope-hantering är komplicerad och kräver försiktighet. Den är baserad på funktionsscopet.
1var x = 10;let: Introducerades i ES6, det är ett sätt att deklarera variabler med blockscope. Den kan tilldelas nytt värde men kan inte deklareras om i samma scope.
1let y = 20;const: Används för att deklarera variabler som är oföränderliga (konstanter). Den har blockscope och kan inte tilldelas om eller deklareras om efter deklaration.
1const z = 30;Scope
Variabler har konceptet scope.
Globalt scope
1var globalVar = 'This is global'; // Global scope
2
3function accessGlobal() {
4 console.log(globalVar); // Able to access global variable
5}
6
7accessGlobal(); // Outputs "This is global"
- Globalt scope-variabler är åtkomliga var som helst. Variabler deklarerade med
varhar globalt eller funktionsscope, menletochconsthar blockscope.
Blockscope
1if (true) {
2 let localVar = "This is a block-scoped variable";
3
4 // Accessible inside the brackets
5 console.log(localVar);
6}
7
8// Error: localVar cannot be used outside of this scope
9console.log(localVar);-
Blockscope: Variabler deklarerade med
letellerconstär bara giltiga inom{}(klammerparenteser). -
Ett fel inträffar när man försöker att komma åt utanför
{}(klamrar).
Funktionsscope
1function myFunction() {
2 var functionScoped = 'This is function scope';
3 // Accessible inside the function
4 console.log(functionScoped);
5
6 if (true) {
7 var functionVar = 'This is also function scope';
8 }
9 // functionVar can be used inside of the fucntion
10 console.log(functionVar);
11}
12
13myFunction(); // Outputs "This is function scope"
14
15// Error: functionScoped is not defined
16console.log(functionScoped);-
Funktionsscope: Variabler och funktioner definierade inuti en funktion kan inte åtkommas utanför funktionen. Variabler som deklareras inuti en funktion med
vartillhör detta scope. -
I det här exemplet kan variabeln
functionVarnås utanför{}(klammerparenteser) så länge den är inom funktionsomfånget. Å andra sidan leder åtkomst till variabelnfunctionScopedutanför funktionsomfånget till ett fel.
Således har variabler deklarerade med var endast funktionsscope och inget blockscope, vilket utgör en risk för att användas i oväntade områden. Det är att föredra att använda const för variabler som inte ändras och vanligtvis använda let för att undvika användningen av var så mycket som möjligt.
Datatyper
JavaScript-variabler kan lagra värden av olika datatyper. Det finns string för att hantera text och number för att hantera numeriska värden.
De huvudsakliga datatyperna är följande:.
1// Number: Numeric type (integer and floating point number)
2let integerNumber = 42;
3let floatNumber = 3.14;
4console.log("Number (Integer):", integerNumber);
5console.log("Number (Float):", floatNumber);
6
7// String: String type
8let text = "Hello, JavaScript!";
9console.log("String:", text);
10
11// Boolean: Boolean type (true or false)
12let isJavaScriptFun = true;
13let isError = false;
14console.log("Boolean (true):", isJavaScriptFun);
15console.log("Boolean (false):", isError);
16
17// Null: Explicitly represents "nothing"
18let emptyValue = null;
19console.log("Null:", emptyValue);
20
21// Undefined: The default value assigned to an uninitialized variable
22let notDefined;
23console.log("Undefined:", notDefined);
24
25// Symbol: A data type for creating unique values
26let uniqueKey = Symbol("id");
27console.log("Symbol:", uniqueKey);- Primitiva typer:
number: Hanterar numeriska värden (heltal och flyttal).string: Hanterar textsträngar.boolean: Hanterar booleanvärdentrueellerfalse.null: Representerar uttryckligen värdet 'ingenting'.undefined: Ett värde som automatiskt tilldelas till variabler som inte har initialiserats.Symbol: En datatyp som används för att skapa unika värden.
1// Object: A data structure that holds multiple properties
2let person = {
3 name: "Alice",
4 age: 25,
5 isStudent: false
6};
7console.log("Object:", person);
8console.log("Object Property (name):", person.name);
9console.log("Object Property (age):", person.age);
10
11// Array: A list that holds multiple values
12let numbers = [10, 20, 30, 40];
13console.log("Array:", numbers);
14console.log("Array Element (index 0):", numbers[0]);
15
16// Function: A function object
17function greet(name) {
18 return "Hello, " + name + "!";
19}
20console.log("Function Output:", greet("Bob"));
21
22// Another way to define a function using arrow syntax
23let add = (a, b) => a + b;
24console.log("Arrow Function Output (3 + 5):", add(3, 5));- Objekttyper:
Objekt: En datastruktur med flera egenskaper.Array: En lista som innehåller flera värden.Function: Ett funktionellt objekt.
Tilldelning och omtilldelning av variabler
Variabler som deklareras med let eller var kan tilldelas om, men const kan inte tilldelas om efter att ha deklarerats.
1let score = 100;
2score = 150; // Correct
3
4const pi = 3.14;
5pi = 3.14159; // Error
Variabellyftning
I JavaScript finns det ett fenomen där variabeldeklarationer 'lyfts' till toppen av deras räckvidd. Variabler som deklareras med var lyfts, men att använda let eller const innan deklaration orsakar ett fel.
1console.log(a); // undefined
2var a = 10;
3console.log(a); // 10
- I detta fall lyfts variabler deklarerade med
varupp och deras värden skrivs ut.
1console.log(b); // ReferenceError
2let b = 20;- Variabler deklarerade med
letlyfts inte upp, vilket resulterar i ett fel.
Korrekt användning av variabler
Tänk på följande punkter för korrekt användning av variabler.
- Föredra att använda
constoch undvik att användavar. - Följ namngivningskonventioner för variabler.
- Använd
camelCase, till exempeluserNameellertotalPrice. - Undvik tvetydiga namn som
dataellervalue, och använd meningsfulla namn för att förbättra läsbarheten. - Ett variabelnamn kan inte börja med en siffra, så namn som
1variableär inte tillåtna.
- Använd
- Överdriven användning av globala variabler kan orsaka oklarheter i scope och leda till buggar, så undvik att använda dem när det är möjligt.
Sammanfattning
var: En äldre metod för variabeldeklaration som har funktionsräckvidd.let: En blockbegränsad variabel som kan tilldelas om.const: En blockbegränsad variabel som inte kan tilldelas om (konstant).- Det är viktigt att använda variabler enligt deras datatyper och att vara medveten om deras räckvidd.
Vad är flykttecken i JavaScript?
Flykttecken är en metod som används för att representera tecken med speciella betydelser inom vanliga strängliteraler. I JavaScript introduceras flykttecken med ett omvänt snedstreck \ för att ge en sträng specialeffekter eller inkludera kontrolltecken. Flykttecken är användbara för att inkludera element som radbrytningar, tabbar eller citattecken i en sträng.
Exempel på användning av flykttecken
Nedan visas några exempel på kod som använder flykttecken.
Flykta dubbla och enkla citattecken
Använd flykttecken för att representera dubbla eller enkla citattecken inom en sträng.
1const singleQuote = 'It\'s a beautiful day!';
2console.log(singleQuote); // Output: It's a beautiful day!
3
4const doubleQuote = "He said, \"Hello there!\"";
5console.log(doubleQuote); // Output: He said, "Hello there!"
Flykta omvända snedstreck
För att inkludera ett omvänt snedstreck i en sträng, flykta det med \.
1const path = "C:\\Program Files\\MyApp";
2console.log(path); // Output: C:\Program Files\MyApp
Flykta radbrytningar och tabbar
Du kan infoga radbrytningar och tabbar för att göra långa strängar mer läsbara.
1const multiline = "First line\nSecond line\nThird line";
2console.log(multiline);
3// Output:
4// First line
5// Second line
6// Third line
7
8const tabbed = "Column1\tColumn2\tColumn3";
9console.log(tabbed); // Output: Column1 Column2 Column3
Flykta Unicode-tecken
Genom att använda Unicode-flyktsekvenser kan du representera specifika tecken med hexadecimala koder.
1const smiley = "\u263A"; // Copyright Mark
2console.log(smiley);Anteckningar
Överdriven användning av flykttecken kan skada läsbarheten
Överdriven användning av flykttecken kan minska läsbarheten i din kod. Det är särskilt viktigt att använda flykttecken på ett genomtänkt sätt i långa strängar.
Överväg att använda mönstersträngar (template literals)
I JavaScript kan mönstersträngar (template literals) som använder bakåtvända apostrofer inkludera radbrytningar eller inbäddade uttryck utan flykttecken.
1const message = `This is a message
2that spans multiple lines`;
3console.log(message);
4// Output:
5// This is a message
6// that spans multiple lines
Sammanfattning
Flykttecken är viktiga för att representera speciella eller kontrolltecken inom strängar. Genom att flykta enkla eller dubbla citattecken och lägga till radbrytningar eller tabbar kan du skapa mer flexibla strängar. Emellertid kan överdriven användning av flykttecken göra koden svårare att läsa, så överväg att använda mönstersträngar (template literals) där det passar.
JavaScript-versioner
JavaScript har en standard specifikation som kallas ECMAScript (ES). JavaScript har utvecklats utifrån denna standard. Nedan finns en kort beskrivning av dess huvudversioner.
-
ES3 (1999)
Den första versionen som blev allmänt använd. Grundläggande syntax och funktioner fastställdes.
-
ES5 (2009)
Introduktion av
strict modeoch nya funktioner somArray.prototype.forEach,Object.keys, etc. lades till. -
ES6 / ES2015 (2015)
En större uppdatering av JavaScript har gjorts. Många funktioner grundläggande för modern JavaScript, såsom
let,const,arrow functions,klasser,promises,moduler, etc., introducerades. -
ES7 / ES2016 (2016)
Array.prototype.includesochExponentiation Operator (**)lades till. -
ES8 / ES2017 (2017)
async/awaitintroducerades, vilket gjorde det enklare att skriva asynkrona processer. -
ES9 / ES2018 (2018)
Asynkrona iteratorer och
Rest/Spread Propertieslades till. -
ES10 / ES2019 (2019)
flatMapochObject.fromEntrieslades till. -
ES11 / ES2020 (2020)
Optional Chaining (?.)ochNullish Coalescing Operator (??)lades till, vilket möjliggör att skriva kod enklare och säkrare. -
ES12 / ES2021 (2021)
String.prototype.replaceAllochPromise.any, bland annat, lades till. -
ES13 / ES2022 (2022)
Array.prototype.atoch klassensprivate-fält (#field), bland annat, lades till. -
ES14 / ES2023 (2023)
Array.prototype.toSortedochSymbol.prototype.description, bland annat, lades till. -
ES15 / ES2024 (2024)
Promise.withResolversför enklare hantering avPromiseoch justerbarArrayBuffer, bland annat, lades till.
Nuvarande JavaScript uppdateras varje år, och nya funktioner läggs till även i den senaste versionen.
Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.