JavaScript的基本概念:
变量
变量是存储数据的容器。在JavaScript中,可以使用var、let或const关键字声明变量。例如:
var x = 10; // 使用var声明变量x并赋值为10 let y = 20; // 使用let声明变量y并赋值为20 const z = 30; // 使用const声明常量z并赋值为30(不能修改)
数据类型
JavaScript中有五种基本数据类型:Number、String、Boolean、Null和Undefined。例如:
var num = 10; // Number类型 var str = "Hello, World!"; // String类型 var bool = true; // Boolean类型 var n = null; // Null类型 var u; // Undefined类型
运算符:
JavaScript支持多种运算符,包括算术运算符、比较运算符、逻辑运算符等。例如:
var a = 10; var b = 20; var c = a + b; // 加法运算符 var d = a - b; // 减法运算符 var e = a * b; // 乘法运算符 var f = a / b; // 除法运算符 var g = a % b; // 取余运算符 var h = a > b; // 大于运算符 var i = a < b; // 小于运算符 var j = a >= b; // 大于等于运算符 var k = a <= b; // 小于等于运算符 var l = a == b; // 等于运算符 var m = a != b; // 不等于运算符 var n = a && b; // 逻辑与运算符 var o = a || b; // 逻辑或运算符
控制结构
JavaScript支持if-else语句、switch语句、for循环、while循环、do-while循环等控制结构。例如:
// if-else语句 var age = 18; if (age >= 18) { console.log("成年人"); } else { console.log("未成年人"); } // switch语句 var day = "星期一"; switch (day) { case "星期一": console.log("星期一"); break; case "星期二": console.log("星期二"); break; default: console.log("其他"); } // for循环 for (var i = 0; i < 5; i++) { console.log(i); } // while循环 var j = 0; while (j < 5) { console.log(j); j++; } // do-while循环 var k = 0; do { console.log(k); k++; } while (k < 5);
函数
函数是一段可重复使用的代码块。在JavaScript中,可以使用function关键字声明函数。例如:
function add(a, b) { return a + b; } console.log(add(1, 2)); // 输出3
对象
对象是一组无序的属性和方法的集合。在JavaScript中,可以使用{}表示一个对象。例如:
var person = { name: "张三", age: 30, sayHello: function() { console.log("你好!"); } }; console.log(person.name); // 输出张三 person.sayHello(); // 输出你好!
数组
数组是一组有序的元素集合。在JavaScript中,可以使用[]表示一个数组。例如:
var numbers = [1, 2, 3, 4, 5]; console.log(numbers[0]); // 输出1 numbers.push(6); // 向数组末尾添加元素6 console.log(numbers); // 输出[1, 2, 3, 4, 5, 6]
JavaScript的内置对象和方法
JavaScript提供了许多内置对象和方法,可以帮助我们更方便地操作数据和实现功能。以下是一些常用的内置对象和方法:
Math对象:提供了一系列数学相关的属性和方法,如圆周率、三角函数等。例如:
var pi = Math.PI; // 获取圆周率π的值 var sinValue = Math.sin(Math.PI / 2); // 计算正弦值 console.log(sinValue); // 输出1(因为sin(π/2) = 1)
Date对象:表示日期和时间。例如:
var now = new Date(); // 获取当前日期和时间 console.log(now); // 输出当前日期和时间(格式为:Wed Jul 07 2022 14:30:00 GMT+0800 (中国标准时间))
Array对象:提供了一系列数组操作的方法,如排序、查找、遍历等。例如:
var arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]; arr.sort(); // 对数组进行升序排序 console.log(arr); // 输出[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
JSON对象:提供了将JavaScript对象转换为JSON字符串和将JSON字符串转换为JavaScript对象的方法。例如:
var obj = {name: "张三", age: 30}; var jsonStr = JSON.stringify(obj); // 将JavaScript对象转换为JSON字符串 console.log(jsonStr); // 输出{"name":"张三","age":30} var jsonObj = JSON.parse(jsonStr); // 将JSON字符串转换为JavaScript对象 console.log(jsonObj); // 输出{name: "张三", age: 30}
JavaScript的事件处理机制
JavaScript的事件处理机制允许我们在用户与网页交互时执行特定的代码。事件可以是鼠标点击、键盘按键、页面滚动等。以下是一些常用的事件处理方法:
onclick事件:当用户点击某个元素时触发。例如:
<button onclick="alert('你点击了按钮!')">点击我</button>
onmouseover事件:当鼠标指针移动到某个元素上时触发。例如:
<div onmouseover="alert('你鼠标悬停在了该元素上!')">悬停在这里</div>
onkeydown事件:当用户按下某个键时触发。例如:
<input type="text" onkeydown="alert('你按下了键盘上的键!')">
onload事件:当网页加载完成时触发。例如:
<body onload="alert('网页已加载完成!')">
JavaScript的异步编程
JavaScript的异步编程允许我们在不阻塞主线程的情况下执行耗时的操作。常见的异步编程方式有回调函数、Promise和async/await。以下是一些示例:
回调函数:通过将一个函数作为参数传递给另一个函数来实现异步操作。例如:
function asyncFunction(callback) { setTimeout(function() { callback('异步操作完成'); }, 1000); } asyncFunction(function(result) { console.log(result); // 输出异步操作完成(1秒后) });
Promise:一种更现代的异步编程方式,可以更好地处理异步操作的结果。例如
function asyncFunction() { return new Promise(function(resolve, reject) { setTimeout(function() { resolve('异步操作完成'); }, 1000); }); } asyncFunction().then(function(result) { console.log(result); // 输出异步操作完成(1秒后) });
async/await:一种简化Promise链的语法糖。例如:
async function asyncFunction() { const result = await new Promise(function(resolve, reject) { setTimeout(function() { resolve