📅  最后修改于: 2023-12-03 14:42:42.079000             🧑  作者: Mango
在进行Javascript开发时,我们常常会遇到不少问题,而在面试时,面试官会问到我们常常会遇到的问题是什么,以及我们是如何解决这些问题的。本文将介绍一些常见的Javascript问题及其解决方法,帮助大家在面试中更好地展现自己的技能。
在Javascript中,我们经常需要对DOM进行操作,但是经常会出现问题,例如:
textContent
或innerHTML
属性。const elem = document.getElementById("myId");
const content = elem.textContent;
// 或者
const content = elem.innerHTML;
getAttribute
方法。const elem = document.getElementById("myId");
const attr = elem.getAttribute("myAttr");
textContent
或innerHTML
属性,或者使用setAttribute
方法。const elem = document.getElementById("myId");
elem.textContent = "new content";
// 或者
elem.innerHTML = "<strong>new content</strong>";
// 或者
elem.setAttribute("myAttr", "new value");
appendChild
、removeChild
和replaceChild
方法。const parent = document.getElementById("parent");
const child = document.createElement("div");
parent.appendChild(child); // 添加子元素
parent.removeChild(child); // 删除子元素
const newChild = document.createElement("span");
parent.replaceChild(newChild, child); // 替换子元素
在Javascript中,由于是单线程执行,处理异步编程时经常会出现问题,例如:
// 使用Promises
function getUser(userId) {
return new Promise((resolve, reject) => {
api.getUser(userId, (err, user) => {
if (err) {
reject(err);
}
else {
resolve(user);
}
});
});
}
getUser(123)
.then(user => {
console.log(user);
})
.catch(err => {
console.log(err);
});
// 使用async/await
async function myFunction() {
try {
const user = await getUser(123);
console.log(user);
}
catch (err) {
console.log(err);
}
}
then
方法和catch
方法进行处理。function myFunction() {
return new Promise((resolve, reject) => {
api.getSomething((err, data) => {
if (err) {
reject(err);
}
else {
resolve(data);
}
});
});
}
myFunction()
.then(data => {
console.log(data);
})
.catch(err => {
console.log(err);
});
async
关键字和await
关键字进行处理。async function myFunction() {
try {
const data = await api.getSomething();
console.log(data);
}
catch (err) {
console.log(err);
}
}
在Javascript中,函数是一等公民,使用函数编程时经常会出现问题,例如:
const myFunction = (param1, param2) => {
return param1 + param2;
}
function createFunction() {
const innerVar = 123;
return function() {
console.log(innerVar);
}
}
const myFunction = createFunction();
myFunction(); // 输出123
function myFunction(num) {
if (num <= 0) {
return 0;
}
else {
return num + myFunction(num - 1);
}
}
console.log(myFunction(5)); // 输出15
以上是Javascript常见问题的一些解决方法,希望大家可以掌握这些知识,在面试中更好地展现自己的技能。