1. 基础语法
1.1 变量声明
题目:解释var、let和const在JavaScript中的区别。
答案:
var:变量提升,存在变量提升问题,作用域为函数作用域或全局作用域。let:块级作用域,不会变量提升,不能重复声明。const:块级作用域,不会变量提升,声明后不能重新赋值。
1.2 数据类型
题目:JavaScript中有哪些基本数据类型?
答案:
- 基本数据类型:
string、number、boolean、null、undefined、symbol。 - 对象类型:
Object、Array、Date、RegExp等。
1.3 运算符
题目:计算以下表达式的结果:3 + 4 * 2。
答案:11。
2. 控制结构
2.1 条件语句
题目:使用if...else语句判断一个数字是否为正数。
let num = 5;
if (num > 0) {
console.log('正数');
} else {
console.log('非正数');
}
2.2 循环语句
题目:使用for循环打印1到10的数字。
for (let i = 1; i <= 10; i++) {
console.log(i);
}
3. 函数
3.1 函数定义
题目:解释function和箭头函数的区别。
答案:
function:传统的函数声明方式,支持多种语法。箭头函数:ES6引入的新特性,语法简洁,不绑定this。
3.2 闭包
题目:解释闭包的概念。
答案:
- 闭包:函数在执行时,可以访问其定义时的作用域中的变量,即使函数执行完成后,这些变量仍然存在。
4. 对象
4.1 创建对象
题目:使用构造函数创建一个对象。
function Person(name, age) {
this.name = name;
this.age = age;
}
let p = new Person('张三', 18);
4.2 属性访问
题目:访问对象的属性。
console.log(p.name); // 输出:张三
5. 数组
5.1 创建数组
题目:使用数组字面量创建一个数组。
let arr = [1, 2, 3];
5.2 数组方法
题目:使用forEach方法遍历数组。
arr.forEach(function(item, index, array) {
console.log(item); // 输出:1, 2, 3
});
6. 事件处理
6.1 事件监听
题目:为按钮添加点击事件监听器。
let button = document.getElementById('myButton');
button.addEventListener('click', function() {
console.log('按钮被点击');
});
7. DOM操作
7.1 获取元素
题目:获取页面中第一个p元素。
let p = document.querySelector('p');
7.2 设置内容
题目:设置获取到的p元素的内容。
p.textContent = '这是一个新的内容';
8. ES6新特性
8.1 模板字符串
题目:使用模板字符串输出以下信息。
let name = '张三';
let age = 18;
console.log(`我的名字是${name},今年${age}岁`);
8.2 解构赋值
题目:使用解构赋值获取数组的第一个和第二个元素。
let [first, second] = [1, 2];
console.log(first); // 输出:1
console.log(second); // 输出:2
9. 异步编程
9.1 Promise
题目:使用Promise实现一个异步加法函数。
function addAsync(a, b) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(a + b);
}, 1000);
});
}
addAsync(1, 2)
.then(result => {
console.log(result); // 输出:3
})
.catch(error => {
console.error(error);
});
9.2 async/await
题目:使用async/await简化Promise的使用。
async function fetchData() {
try {
let result = await fetch('https://api.example.com/data');
let data = await result.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
fetchData();
总结
通过以上50道基础练习题,相信你已经对JavaScript的核心知识有了更深入的了解。在后续的学习中,请不断练习和积累,逐步掌握更多高级特性。祝你学习顺利!
