前面的話
分享幾題阿里的基礎面試題,題目來自小柒看的一場直播課上的。解析
(1)下面的**輸出結果
var test =
(function
(a)}
(function
(a,b)(1
,2))
);console.
log(
test(4
));
解析:
最後console.log(test(4)),4傳給上面的引數b,最後結果 1+ 4 = 5。
(2)不使用迴圈,如何讓長度為100的陣列的元素為相應的索引。
解析:這題有很多解法:定時器、遞迴等,但是面試官其實最想要的是陣列的map方法。
這裡直接給出使用map方法實現的過程:
var crr =
newarray
(100).
join
(',').
split
(',');
crr = crr.
map(
function
(item, index)
) console.
log(crr)
;
因為map方法只會將陣列中有值的項進行操作。所以如果只定義乙個100長度的陣列map是不起作用的。先用join方法將陣列轉為全為逗號的字串,再用split方法將字串以,進行分割,轉為陣列。這樣陣列就元素就全為『,』,解決了陣列值為空的問題。
(3)如何優雅的實現陣列亂序(洗牌演算法)?
解析:這題考查的同樣是陣列的方法:sort()。
var arr =[4
,1,6
,7,5
,6,9
,8];
arr.
sort
(function
(a, b)
) console.
log(arr)
;
隨機生成0.01 ~0.99 的數,比0.5大返回1,表示a>b不交換位置;比0.5小,返回-1,表示a(4)如何優雅的計算出陣列前十位的和?
這裡考查的是陣列的reduce方法
var arr =[1
,2,3
,4,5
,6,7
,8,9
,10,11
,12,13
];// 先擷取前10位,再使用reduce方法
arr = arr.
splice(0
,10).
reduce
(function
(pre, crr, index,array)
) console.
log(arr)
;
總結:前面都是考查的一些高階函式的使用,陣列的5個迭代方法都屬於高階函式。 詳細了解高階函式 阿里面試題
1 請寫出以下 執行結果。var x 1,y 0,z 0 function add x y add x function add x z add x x 1 y 4 z 42 請寫出以下 執行結果。var num 1 var myobject console.log this.num sub fun...
基礎面試題
答 物件導向的特徵主要有以下幾個方面 1.抽象 抽象就是忽略乙個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象 二是資料抽象。2.繼承 繼承是一種聯結類的層次模型,並且允許和鼓勵類...
基礎面試題
公有方法。整個程式都可以訪問 私有方法。只有這個類可以訪問 受保護級別。這個包中的類及子類都可訪問 無修飾符時只向同乙個包中的類訪問 許可權限制 private default protected public 被public修飾的變數 public string s 被private修飾的變數 p...