每日3題
1 以下代碼執(zhí)行后,控制臺(tái)中的輸出內(nèi)容為?
// 以下代碼執(zhí)行后,瀏覽器的控制臺(tái)中輸出的內(nèi)容是什么
var arr = [0, 1, 2];
arr[10] = 10;
var newArr = arr.filter((x) => x === undefined);
console.log(newArr);
2 以下代碼執(zhí)行后,控制臺(tái)中的輸出內(nèi)容為?
// 以下代碼執(zhí)行后,控制臺(tái)中輸出的內(nèi)容是什么
const obj = {
2: 3,
3: 4,
length: 2,
push: Array.prototype.push,
};
obj.push(1);
console.log(obj);
3 以下代碼執(zhí)行后,控制臺(tái)中的輸出內(nèi)容為?
// 以下代碼執(zhí)行后,控制臺(tái)中輸出的內(nèi)容是什么
let x;
try {
throw new Error();
} catch (x) {
x = 1;
console.log(x);
}
console.log(x);
- 公眾號(hào)【今天也要寫(xiě)bug】更多前端面試題
答案及解析
1
// 答案:[]
// 考察 filter 方法
var arr = [0, 1, 2];
arr[10] = 10;
var newArr = arr.filter((x) => x === undefined);
// 傳入 filter 方法的函數(shù),只會(huì)在已經(jīng)賦值的索引上被調(diào)用,對(duì)于那些已經(jīng)被刪除或者從未被賦值的索引不會(huì)被調(diào)用。
// 所以最終沒(méi)有值通過(guò)測(cè)試
console.log(newArr);
2
// 答案:{ '2': 1, '3': 4, length: 3, push: [Function: push] }
// 考察 push 方法
// push 方法可以應(yīng)用在類(lèi)似數(shù)組的對(duì)象上
// push 方法根據(jù) length 屬性來(lái)決定從哪里開(kāi)始插入給定的值
const obj = {
2: 3,
3: 4,
length: 2,
push: Array.prototype.push,
};
obj.push(1); // obj.length=2,所以 push 插入到索引 2 處,即 obj[2]=1
console.log(obj);
3
// 答案:1 undefined
// 考察 catch 和作用域
// catch塊指定一個(gè)標(biāo)識(shí)符(在下面為x),該標(biāo)識(shí)符保存由throw語(yǔ)句指定的值。
// catch塊是唯一的,因?yàn)楫?dāng)輸入catch塊時(shí),JavaScript 會(huì)創(chuàng)建此標(biāo)識(shí)符,并將其添加到當(dāng)前作用域;
// 標(biāo)識(shí)符僅在catch塊執(zhí)行時(shí)存在;catch塊執(zhí)行完成后,標(biāo)識(shí)符不再可用。
let x;
try {
throw new Error();
} catch (x) {
// x 僅在 catch 塊中可用
x = 1;
console.log(x); // 輸出 1
}
console.log(x); // x 從未賦值,輸出 undefined
名稱(chēng)欄目:前端面試題JavaScript篇——2022-09-16
網(wǎng)站URL:
http://weahome.cn/article/dsojgsg.html