真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

前端面試題JavaScript篇——2022-09-07

每日3題

25 以下代碼執(zhí)行后,控制臺(tái)中的輸出內(nèi)容為?

let a = {
  i: 0,
  [Symbol.toPrimitive]: () => ++a.i,
};
console.log(a == 1 && a == 2 && a == 3);

26 變量 a 會(huì)被 GC 嗎,為什么?

function test(){
    var a = 1;
    return function(){
        eval("")
    }
}
 
test();

27 以下代碼執(zhí)行后,控制臺(tái)中的輸出內(nèi)容為?

console.log([2, 1, 0].reduce(Math.pow));
console.log([].reduce(Math.pow));

公眾號(hào)【今天也要寫(xiě)bug】, 獲取更多前端面試題

長(zhǎng)興ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

答案與解析

25

// 答案:true
// Symbol.toPrimitive 是一個(gè)內(nèi)置的 Symbol 值,
// 它是作為對(duì)象的函數(shù)值屬性存在的,當(dāng)一個(gè)對(duì)象轉(zhuǎn)換為對(duì)應(yīng)的原始值時(shí)
// 如果該函數(shù)存在,則會(huì)調(diào)用此函數(shù)。
let a = {
  i: 0,
  [Symbol.toPrimitive]: () => ++a.i,
};
console.log(a == 1 && a == 2 && a == 3);
// == 會(huì)觸發(fā)類(lèi)型轉(zhuǎn)換,而且我們定義了 Symbol.toPrimitive 方法
// 所以 a == 1 觸發(fā)該方法返回 1,并且 a.i 變?yōu)?1,所以 a == 1 為 true,
// 同理 a == 2 和 a == 3 均為 true

26

// 答案:不會(huì)
// 考察 eval 函數(shù)
// 因?yàn)?eval 會(huì)欺騙詞法作用域,例如 function test(){eval("var a=1")},創(chuàng)建一個(gè) a 變量
// JS 引擎不確定 eval 是否對(duì) a 進(jìn)行了引用,所以為了保險(xiǎn),不對(duì)其進(jìn)行優(yōu)化。
// 相似地,try catch 和 with 也會(huì)有同樣的問(wèn)題
// 不建議使用 eval 和 with
function test() {
  var a = 1;
  return function () {
    eval("");
  };
}

test();

27

// 答案:1 報(bào)錯(cuò)
// 考察 reduce 方法的使用
// reduce 接受兩個(gè)參數(shù):回調(diào)函數(shù)和初始值
// 若不提供初始值,則以數(shù)組第一個(gè)元素作為初始值,并且回調(diào)函數(shù)從數(shù)組第二個(gè)元素開(kāi)始調(diào)用
// 提供初始值,則回調(diào)從數(shù)組第一個(gè)元素開(kāi)始調(diào)用
// 回調(diào)函數(shù)接受4個(gè)參數(shù):previousValue、currentValue、currentIndex、array(即遍歷的數(shù)組)
console.log([2, 1, 0].reduce(Math.pow));
// 執(zhí)行步驟如下:初始值:2
// 第 1 次調(diào)用回調(diào)的入?yún)ⅲ簆reviousValue=2,currentValue=1,Math.pow 只接受2個(gè)參數(shù),結(jié)果 2^1=2
// 第 2 次調(diào)用回調(diào)的入?yún)ⅲ簆reviousValue=2,currentValue=0,Math.pow 只接受2個(gè)參數(shù),結(jié)果 2^0=1
console.log([].reduce(Math.pow));
// 如果數(shù)組為空并且沒(méi)有提供初始值,reduce 直接拋出錯(cuò)誤

文章名稱(chēng):前端面試題JavaScript篇——2022-09-07
網(wǎng)頁(yè)路徑:http://weahome.cn/article/dsojgig.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部