JavaScript 练习题是提升编程技能的好方法。下面我为你准备了一系列从基础到进阶的 JavaScript 练习题,帮助你巩固和扩展你的知识。
基础题
- 变量声明与赋值
- 声明一个变量
name
并赋值为 "Alice"。 - 声明一个变量
age
并赋值为 30。 - 使用模板字符串输出 "Hello, my name is Alice and I am 30 years old."。
- 声明一个变量
- 条件语句
- 编写一个函数
isAdult(age)
,如果age
大于等于 18,则返回 "adult",否则返回 "not an adult"。
- 编写一个函数
- 循环语句
- 使用
for
循环打印数字 1 到 10。 - 使用
while
循环实现同样的功能。
- 使用
- 数组操作
- 创建一个数组
fruits
包含 "apple", "banana", "cherry"。 - 向
fruits
数组中添加 "date"。 - 移除
fruits
数组中的 "banana"。 - 打印
fruits
数组的长度。
- 创建一个数组
- 函数基础
- 编写一个函数
sum(a, b)
,返回两个数的和。 - 编写一个函数
greet(name)
,返回 "Hello, " 加上传入的name
。
- 编写一个函数
进阶题
- 对象与属性
- 创建一个对象
person
,包含name
和age
属性。 - 编写一个函数
describePerson(person)
,该函数接收一个对象作为参数,并返回该对象的描述字符串,如 "Alice is 30 years old."。
- 创建一个对象
- 数组方法
- 使用
map
方法将fruits
数组中的每个元素转换为大写。 - 使用
filter
方法筛选出fruits
数组中长度大于 5 的元素。 - 使用
reduce
方法计算fruits
数组中所有元素长度的总和。
- 使用
- 闭包
- 编写一个函数
createCounter()
,该函数返回一个函数,该返回的函数每次被调用时都会递增一个内部计数器,并返回当前计数值。
- 编写一个函数
- 异步编程
- 使用
Promise
实现一个异步函数fetchData()
,该函数模拟从服务器获取数据,并在 1 秒后返回 "Data fetched successfully."。 - 使用
async/await
语法调用fetchData()
并处理结果。
- 使用
- 事件处理
- 编写一个 HTML 页面,包含一个按钮和一个段落
<p>
。 - 当按钮被点击时,使用 JavaScript 修改
<p>
标签的文本为 "Button clicked!"。
- 编写一个 HTML 页面,包含一个按钮和一个段落
挑战题
- 递归函数
- 编写一个递归函数
factorial(n)
,计算并返回n
的阶乘。
- 编写一个递归函数
- 高阶函数
- 编写一个高阶函数
withLogging(wrappedFunction)
,该函数接收一个函数作为参数,并返回一个新的函数。新函数在调用原函数之前和之后都会打印日志。
- 编写一个高阶函数
这些练习题涵盖了 JavaScript 的多个方面,从基础语法到高级概念如闭包、异步编程和事件处理。通过实践这些练习题,你将能够更深入地理解 JavaScript 的工作原理,并提升你的编程技能。