JavaScript 是一種廣泛使用的客戶端腳本語(yǔ)言,通常用于 web 開(kāi)發(fā)中,可以使網(wǎng)頁(yè)具有動(dòng)態(tài)交互性。它的語(yǔ)法與 C 語(yǔ)言類(lèi)似,下面我將介紹 JavaScript 的基本語(yǔ)法和一些常見(jiàn)操作與技巧。
1. JavaScript 基本語(yǔ)法
1.1 變量聲明
JavaScript 提供了三種方式來(lái)聲明變量:
var:是 JavaScript 的早期關(guān)鍵字,聲明的變量具有函數(shù)作用域。
let:聲明的變量具有塊級(jí)作用域,通常推薦使用。
const:聲明常量,值不可改變,具有塊級(jí)作用域。
javascriptCopy Codevar name = "Alice"; // var - 函數(shù)作用域
let age = 25; // let - 塊級(jí)作用域
const pi = 3.14159; // const - 常量,值不可改變
1.2 數(shù)據(jù)類(lèi)型
JavaScript 的基本數(shù)據(jù)類(lèi)型包括:
Number:數(shù)字類(lèi)型
String:字符串類(lèi)型
Boolean:布爾值,true 或 false
Object:對(duì)象
Array:數(shù)組,實(shí)際上是對(duì)象的一種
null:表示“無(wú)”或“空值”
undefined:未定義的值,變量聲明但未初始化時(shí)為 undefined
Symbol:ES6 引入的唯一標(biāo)識(shí)符
javascriptCopy Codelet num = 10; // Number
let str = "Hello, world!"; // String
let isActive = true; // Boolean
let user = { name: "Alice", age: 25 }; // Object
let arr = [1, 2, 3]; // Array
let nothing = null; // null
let undef; // undefined
1.3 運(yùn)算符
JavaScript 支持各種運(yùn)算符,包括算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符等。
算術(shù)運(yùn)算符
javascriptCopy Codelet x = 10;
let y = 5;
console.log(x + y); // 15
console.log(x - y); // 5
console.log(x * y); // 50
console.log(x / y); // 2
console.log(x % y); // 0
比較運(yùn)算符
javascriptCopy Codeconsole.log(10 == 10); // true (值相等)
console.log(10 === "10"); // false (嚴(yán)格比較,類(lèi)型不同)
console.log(10 != 5); // true (不相等)
console.log(10 > 5); // true (大于)
console.log(10 < 5); // false (小于)
邏輯運(yùn)算符
javascriptCopy Codelet a = true;
let b = false;
console.log(a && b); // false (與運(yùn)算)
console.log(a || b); // true (或運(yùn)算)
console.log(!a); // false (非運(yùn)算)
1.4 控制結(jié)構(gòu)
條件語(yǔ)句:if 和 switch
javascriptCopy Codelet age = 18;
if (age >= 18) {
console.log("成人");
} else {
console.log("未成年");
}
// switch 語(yǔ)句
let day = 3;
switch (day) {
case 1:
console.log("星期一");
break;
case 2:
console.log("星期二");
break;
case 3:
console.log("星期三");
break;
default:
console.log("其他");
}
循環(huán)語(yǔ)句:for 和 while
javascriptCopy Code// for 循環(huán)
for (let i = 0; i < 5; i++) {
console.log(i);
}
// while 循環(huán)
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
1.5 函數(shù)
JavaScript 中的函數(shù)可以使用 function 關(guān)鍵字聲明,支持匿名函數(shù)和箭頭函數(shù)。
javascriptCopy Code// 普通函數(shù)聲明
function greet(name) {
return "Hello, " + name;
}
console.log(greet("Alice")); // "Hello, Alice"
// 匿名函數(shù)
let greet = function(name) {
return "Hello, " + name;
};
console.log(greet("Bob"));
// 箭頭函數(shù)(ES6)
const greet = (name) => `Hello, ${name}`;
console.log(greet("Charlie"));
1.6 數(shù)組與對(duì)象
數(shù)組
數(shù)組是存儲(chǔ)多個(gè)值的有序列表,可以包含各種數(shù)據(jù)類(lèi)型的元素。
javascriptCopy Codelet fruits = ["Apple", "Banana", "Orange"];
console.log(fruits[0]); // "Apple"
fruits.push("Grapes"); // 添加元素
console.log(fruits); // ["Apple", "Banana", "Orange", "Grapes"]
fruits.pop(); // 刪除最后一個(gè)元素
console.log(fruits); // ["Apple", "Banana", "Orange"]
對(duì)象
對(duì)象是由多個(gè)鍵值對(duì)構(gòu)成的數(shù)據(jù)集合。
javascriptCopy Codelet person = {
name: "Alice",
age: 25,
greet: function() {
console.log("Hello, " + this.name);
}
};
console.log(person.name); // "Alice"
person.greet(); // "Hello, Alice"
2. JavaScript 常見(jiàn)操作與技巧
2.1 模板字符串(Template Literals)
模板字符串是 ES6 新增的一種字符串拼接方式,可以更方便地嵌入變量和表達(dá)式。
javascriptCopy Codelet name = "Alice";
let age = 25;
let greeting = `My name is ${name} and I am ${age} years old.`;
console.log(greeting); // "My name is Alice and I am 25 years old."
2.2 解構(gòu)賦值
解構(gòu)賦值是一種從數(shù)組或?qū)ο笾刑崛≈挡⑵滟x給變量的簡(jiǎn)便方式。
javascriptCopy Code// 數(shù)組解構(gòu)
let [x, y] = [10, 20];
console.log(x); // 10
console.log(y); // 20
// 對(duì)象解構(gòu)
let person = { name: "Alice", age: 25 };
let { name, age } = person;
console.log(name); // "Alice"
console.log(age); // 25
2.3 默認(rèn)參數(shù)值
ES6 允許為函數(shù)的參數(shù)設(shè)置默認(rèn)值。
javascriptCopy Codefunction greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet("Alice"); // "Hello, Alice!"
greet(); // "Hello, Guest!"
2.4 擴(kuò)展運(yùn)算符(Spread Operator)
擴(kuò)展運(yùn)算符用于展開(kāi)數(shù)組或?qū)ο蟆?/p>
javascriptCopy Code// 數(shù)組擴(kuò)展
let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5];
console.log(arr2); // [1, 2, 3, 4, 5]
// 對(duì)象擴(kuò)展
let obj1 = { a: 1, b: 2 };
let obj2 = { ...obj1, c: 3 };
console.log(obj2); // { a: 1, b: 2, c: 3 }
2.5 事件處理
在 DOM 操作中,JavaScript 用來(lái)處理用戶輸入和頁(yè)面交互的事件。
javascriptCopy Codelet button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("Button clicked!");
});
2.6 異步編程
JavaScript 中的異步編程通常使用回調(diào)函數(shù)、Promise 或 async/await 來(lái)處理。
使用 Promise
javascriptCopy Codelet promise = new Promise(function(resolve, reject) {
let success = true;
if (success) {
resolve("Success!");
} else {
reject("Failure!");
}
});
promise.then(function(value) {
console.log(value); // "Success!"
}).catch(function(error) {
console.log(error); // "Failure!"
});
使用 async/await
javascriptCopy Codeasync function fetchData() {
let data = await fetch("https://api.example.com");
let json = await data.json();
console.log(json);
}
fetchData();
JavaScript 是一門(mén)功能強(qiáng)大的語(yǔ)言,可以處理客戶端交互、DOM 操作、異步請(qǐng)求等。掌握基本語(yǔ)法是學(xué)習(xí) JavaScript 的第一步,但了解一些常用技巧(如模板字符串、解構(gòu)賦值、擴(kuò)展運(yùn)算符等)將有助于你編寫(xiě)更簡(jiǎn)潔和高效的代碼。