JavaScript(简称 JS)是一种广泛用于 Web 开发的脚本语言,以下从多个方面为你介绍它:
基本概念
JavaScript 是一种高级的、解释型的编程语言,最初设计用于在网页上实现动态交互效果。如今,它不仅可以在浏览器环境中运行,还能借助 Node.js 在服务器端运行。
基本语法
变量声明
在 JavaScript 中有三种声明变量的方式:var、let 和 const。
javascript
// 使用 var 声明变量
var message = 'Hello, World!';
// 使用 let 声明变量,具有块级作用域
let age = 25;
// 使用 const 声明常量,一旦赋值不能再重新赋值
const PI = 3.14;
数据类型
JavaScript 有七种数据类型,分为基本数据类型和引用数据类型。
- 基本数据类型:Number、String、Boolean、Null、Undefined、Symbol。
javascript
// 数字类型
let num = 10;
// 字符串类型
let str = 'JavaScript';
// 布尔类型
let isTrue = true;
// Null 类型
let nullValue = null;
// Undefined 类型
let undefinedValue;
// Symbol 类型
let sym = Symbol('description');
- 引用数据类型:Object,包括数组、函数等。
javascript
// 数组
let arr = [1, 2, 3];
// 对象
let person = {
name: 'John',
age: 30
};
// 函数
function add(a, b) {
return a + b;
}
控制语句
- 条件语句:if...else、switch。
javascript
// if...else 语句
let score = 80;
if (score >= 60) {
console.log('及格');
} else {
console.log('不及格');
}
// switch 语句
let day = 3;
switch (day) {
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
break;
default:
console.log('其他');
}
- 循环语句:for、while、do...while。
javascript
// for 循环
for (let i = 0; i < 5; i++) {
console.log(i);
}
// while 循环
let j = 0;
while (j < 5) {
console.log(j);
j++;
}
// do...while 循环
let k = 0;
do {
console.log(k);
k++;
} while (k < 5);
函数
函数是 JavaScript 中的一等公民,可以将一段代码封装起来,方便复用。
javascript
// 函数声明
function greet(name) {
return 'Hello, ' + name;
}
// 函数调用
let result = greet('Alice');
console.log(result);
// 箭头函数
let multiply = (a, b) => a * b;
let product = multiply(3, 4);
console.log(product);
事件处理
在浏览器环境中,JavaScript 常用于处理各种事件,如点击事件、鼠标移动事件等。
html
事件处理
<script>
let button = document.getElementById('myButton');
button.addEventListener('click', function () {
alert('按钮被点击了!');
});
</script>
面向对象编程
JavaScript 支持面向对象编程,通过构造函数、原型和类来实现。
javascript
// 构造函数
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function () {
console.log('Hello, my name is ' + this.name);
};
}
let person1 = new Person('Bob', 28);
person1.sayHello();
// ES6 类
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(this.name + ' makes a noise.');
}
}
class Dog extends Animal {
speak() {
console.log(this.name + ' barks.');
}
}
let dog = new Dog('Buddy');
dog.speak();
异步编程
JavaScript 是单线程的,但可以通过回调函数、Promise、async/await 等方式实现异步编程。
javascript
// Promise
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data fetched successfully');
}, 2000);
});
}
fetchData().then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});
// async/await
async function getData() {
try {
let data = await fetchData();
console.log(data);
} catch (error) {
console.error(error);
}
}
getData();
以上只是 JavaScript 的一些基础知识,它还有很多高级特性和应用场景,如模块化开发、前端框架(React、Vue、Angular)等。