當前位置:首頁 > IT技術(shù) > 其他 > 正文

前端面試題每日3題——2022-09-06
2022-09-06 22:42:40

每日3題

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

var a = [1, 2, 3];
a.join = a.shift;
console.log(a == 1 && a == 2 && a == 3);

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

var arr = [0, 1];
arr[5] = 5;
var newArr = arr.filter((x) => {
  return x === undefined;
});

console.log(newArr.length);

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

const value = 'value is' + !!Number(['0']) ? 'aaa' : 'bbb';
console.log(value);

公眾號【今天也要寫bug】獲取更多前端面試題

答案與解析

22

// 答案:true
// 考察強制類型轉(zhuǎn)換
// == 操作會進行強制類型轉(zhuǎn)換
// 如果操作數(shù)之一是對象,另一個是數(shù)字或字符串,
// 會嘗試使用對象的valueOf()和toString()方法將對象轉(zhuǎn)換為原始值。
// 如果 valueOf 返回基本類型,就按該值進行轉(zhuǎn)換,否則按 toString 的返回值轉(zhuǎn)換
// 數(shù)組的 valueOf 返回它本身,所以按 toString 的返回值進行轉(zhuǎn)換
// 對于數(shù)組對象,toString 方法在內(nèi)部調(diào)用 join() 方法
var a = [1, 2, 3];
a.join = a.shift; // 在數(shù)組 a 上定義了一個 join 方法,并且該方法是 shift 的功能
console.log(a == 1 && a == 2 && a == 3);
// a == 1,觸發(fā)類型轉(zhuǎn)換
// 觸發(fā) a.toString() 內(nèi)部調(diào)用 a.join(),即 a.shift() 返回 1,同時 a 變?yōu)?[2, 3]
// 所以 a == 1 為 true
// 同理 a == 2 和 a == 3 都為 true

23

// 答案:0
// 考察數(shù)組的 filter 方法
// filter() 方法創(chuàng)建一個新數(shù)組,其包含通過所提供函數(shù)實現(xiàn)的測試的所有元素。
// filter 為數(shù)組中的每個元素調(diào)用一次傳入的回調(diào)函數(shù),
// 并利用所有使得回調(diào)函數(shù)返回 true 或等價于 true 的值的元素創(chuàng)建一個新數(shù)組。
// 回調(diào)函數(shù)只會在已經(jīng)賦值的索引上被調(diào)用,對于那些已經(jīng)被刪除或者從未被賦值的索引不會被調(diào)用。

var arr = [0, 1];
arr[5] = 5; // 直接為索引 5 的元素賦值為 5,跳過的幾個元素均為 'empty',這些索引不會觸發(fā)回調(diào)函數(shù)
var newArr = arr.filter((x) => {
  return x === undefined;
}); // 所以這里沒有元素等于 undefined
console.log(newArr.length); // 輸出 0

24

// 答案:aaa
// 考察運算符優(yōu)先級和強制類型轉(zhuǎn)換
// 優(yōu)先級:函數(shù)調(diào)用 > ! > + > 三元運算符
//
const value = "value is" + !!Number(["0"]) ? "aaa" : "bbb";
console.log(value);

// Number('0') => 0
// !0 觸發(fā)類型轉(zhuǎn)換 => true,這些值會被轉(zhuǎn)換成 false:null、NaN、0、空字符串 ("" or '' or ``)、undefined
// !true => false
// 'value is' + false => 'value isfalse'
// 條件運算符觸發(fā)類型轉(zhuǎn)換 => 'value isfalse' 轉(zhuǎn)換為 true
// 最終輸出 aaa

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務立即開通 >